2014-10-16 10 views
12

Sto cercando l'equivalente di git commit -am "blah blah" ma per un solo file. Se provo:git add e commit singolo file di tracciamento in un unico comando

git commit my.file -am "blah blah" 

ottengo:

fatal: Paths with -a does not make sense. 

mi sono guardato intorno, ma sono riuscito a trovare solo soluzioni che suggerirei di usare gli alias (ad esempio this one), ma anche quelli che non sembrano come potrebbe essere modificato perché ho bisogno di passare un argomento. Devo ricorrere allo calling git through a shell?

Sembra che ci dovrebbe essere un'opzione più semplice per qualcosa che immagino sarebbe estremamente comune. In questo momento sto attaccato con:

git add my.file 
git commit -m "blah blah" 

risposta

21

basta omettere il -a che significa --all che non è quello che si desidera. Fare questo:

git commit my.file -m "blah blah" 

che impegnerà solo my.file, anche se altri file sono in scena (da git add).

+3

Jeez, non posso credere che fosse così semplice. Non mi ero reso conto che avrei potuto eseguire il commit senza staging (il messaggio "Changes not staged for commit:" mi ha buttato fuori). Nessuna meraviglia che nessun altro abbia posto questa domanda ... Ho anche interpretato male -a come "add". – BrodieG

+1

Questo * impegna * il file anche se non è ancora messo in scena da 'git add'. (Non ci credevo all'inizio - anche se è menzionato sia in questione che nel commento sopra (!), Menzionandolo esplicitamente qui.) – Nickolay

-3

ho provato il seguente comando:

git commit -m 'your comment' path/to/your/file.txt 

spero, che questo vi aiuterà.

+3

Questa è essenzialmente la stessa risposta accettata dal 2016. Inoltre, il tuo risposta dice "Ho provato" senza informazioni sul fatto che funzioni effettivamente o meno. Quindi non solo questa risposta non è necessaria, ma non è una buona risposta. –

Problemi correlati