2014-10-16 3 views
12

Ich bin auf der Suche nach dem Äquivalent von git commit -am "blah blah" aber nur für eine einzige Datei. Wenn ich versuche:git hinzufügen und commit single tracked Datei in einem Befehl

git commit my.file -am "blah blah" 

ich:

fatal: Paths with -a does not make sense. 

Ich sah mich um, aber ich konnte nur Lösungen finden, die Aliase empfehlen die Verwendung (zB this one), aber auch wie sie diejenigen scheinen nicht könnte geändert werden, weil ich ein Argument übergeben muss. Muss ich auf calling git through a shell zurückgreifen?

Es scheint, als sollte es eine einfachere Option für etwas geben, das ich mir vorstellen würde extrem verbreitet sein. Im Moment bin ich fest mit:

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

Antwort

21

einfach weglassen die -a was bedeutet, --all das ist nicht das, was Sie wollen. Tun Sie dies:

git commit my.file -m "blah blah" 

Das begehen wird nur my.file, auch wenn andere Dateien in Szene gesetzt werden (durch git add).

+3

Jeez, kann nicht glauben, dass es so einfach war. Ich wusste nicht, dass ich ohne Staging committen könnte (die "Changes not staged for commit:" - Nachricht warf mich ab). Kein Wunder, dass niemand diese Frage gestellt hat ... Ich habe auch missverstanden das -a zu "add". – BrodieG

+1

Dies * wird * die Datei festschreiben, obwohl sie noch nicht von 'git add' inszeniert wurde. (Ich habe das zuerst nicht geglaubt - obwohl es sowohl in Frage als auch im obigen Kommentar (!) Erwähnt wurde, so dass ich es hier explizit erwähne.) – Nickolay

-3

Ich habe versucht, den folgenden Befehl ein:

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

Ich hoffe, dies wird dazu beitragen.

+3

Dies ist im Wesentlichen die gleiche Antwort wie die von 2016 akzeptierte Die Antwort sagt "Ich habe es versucht" ohne Informationen darüber, ob das tatsächlich funktioniert oder nicht. Also ist diese Antwort nicht nur unnötig, es ist auch keine sehr gute Antwort. –