Wenn git commit
der Nachrichteneditor geöffnet ist, wird ein kurzer Status angezeigt:
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Your branch is ahead of 'origin/master' by 26 commits.
#
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: Showcase/src/com/gigantt/BorderArea.mxml
# modified: Showcase/src/com/gigantt/Client.mxml
# modified: Showcase/src/com/gigantt/GraphItem.mxml
#
Wie kann ich git optimieren, um auch den Diff anzuzeigen, der festgeschrieben werden soll? Ich bin mir bewusst, dass es ein langer Unterschied sein kann, aber immer noch ... so nützlich.
git diff --cached
erzeugt es, aber warum einen separaten Befehl ausführen, wenn Sie es jedes Mal wollen?Antworten:
Das
--verbose
(oder-v
) Flag fürgit commit
zeigt den Unterschied an, was festgeschrieben werden würde:git commit --verbose
quelle
Nicht genug Ruf, um eine Antwort auf Alans Antwort zu posten, aber für Idan und alle anderen habe ich es gerade ausprobiert und die Diff-Zeilen in der Commit-Nachricht werden nicht explizit auskommentiert. Sie werden jedoch immer noch nicht in der endgültigen Festschreibungsnachricht angezeigt, Gott sei Dank.
$ git commit --verbose
In meinem Editor:
(Beachten Sie das Fehlen
#
vor den Diff-Linien)Und dann die eigentliche Commit-Nachricht:
Natürlich
git show
wird immer noch der Unterschied angezeigt, aber das liegt daran, dass dies immer für Commits gilt. :) :)quelle
# ------------------------ >8 ------------------------
- Ich gehe davon aus, dass git automatisch alles entfernt, was danach erscheint.git config --global commit.verbose true
Der einfachste Weg, um sicherzustellen, dass dieses Verhalten immer vorhanden ist, besteht darin, diesen Abschnitt zu Ihrer
git config
Datei hinzuzufügen :Möglicherweise müssen Sie Ihren Editor so konfigurieren, dass er tatsächlich im Diff-Modus angezeigt wird (zur Hervorhebung der Syntax). Ich verwende Notepad2 als Windows Notepad-Ersatz und stelle
-s diff
das Farbschema entsprechend ein (rot für gelöschte Zeilen usw.):quelle
Ich habe die folgenden Zeilen in .git / hooks / prepare-commit-msg eingefügt , um einen auskommentierten Unterschied zu erhalten:
Auf diese Weise können Sie nicht nur den Unterschied auskommentieren, sondern auch weitere Informationen hinzufügen (wie dies bei der Option stat der Fall ist).
Bearbeiten: Auch git commit --verbose enthält nicht den Unterschied zur Commit-Nachricht, der auf diese Weise ohne die #s auskommen würde.
quelle
# ------------------------ >8 ------------------------
Sie mehr git-scm.com/docs/git-commit#git-commit-scissorsWenn Sie beim Festschreiben immer den Unterschied sehen möchten, können Sie Ihrer
~/.gitconfig
Datei Folgendes hinzufügen :quelle
git config --global alias.commit 'commit -v'
und der Alias wurde wie von Ihnen vorgeschlagen hinzugefügt - nur automatisch. Ich habe einen weiteren Alias namens erstelltcv
, der wie erwartet funktioniert. Meine Git-Version ist 2.5.0, wie in Ubuntu 15.10 gepackt.git config --global commit.verbose true