Po git commit
otwarciu edytor wiadomości pokazuje krótki status, na przykład:
# 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
#
Jak mogę dostosować git, aby pokazać również różnicę, która ma zostać zatwierdzona? Zdaję sobie sprawę, że może to być długa różnica, ale nadal… bardzo przydatna.
git diff --cached
tworzy go, ale po co uruchamiać osobne polecenie, jeśli chcesz go za każdym razem?Odpowiedzi:
Flaga
--verbose
(lub-v
) dlagit commit
wyświetli różnicę tego, co zostałoby popełnione:git commit --verbose
źródło
Nie ma wystarczającej reputacji, aby opublikować odpowiedź na odpowiedź Alana, ale dla Idana i kogokolwiek innego właśnie to wypróbowałem, a linie różnic w komunikacie zmiany nie zostały wyraźnie zakomentowane. Jednak, dzięki Bogu, nadal nie pojawiają się w ostatnim komunikacie o zatwierdzeniu.
$ git commit --verbose
W moim edytorze:
(zwróć uwagę na brak
#
poprzedzających linii różnicowych)A potem rzeczywisty komunikat o zatwierdzeniu:
Oczywiście
git show
nadal będzie pokazywać różnicę, ale to dlatego, że zawsze tak jest dla zatwierdzeń. :)źródło
# ------------------------ >8 ------------------------
- Zakładam, że git automatycznie usuwa wszystko, co pojawia się po nim.git config --global commit.verbose true
Najprostszym sposobem upewnienia się, że takie zachowanie jest zawsze obecne, jest dodanie tej sekcji do
git config
pliku:Może zajść potrzeba skonfigurowania edytora, aby faktycznie wyświetlał się w trybie porównywania (do podświetlania składni). Używam Notepad2 jako zamiennika Notatnika Windows i
-s diff
odpowiednio ustawiam schemat kolorów (czerwony dla usuniętych linii itp.):źródło
Umieściłem następujące linie w .git / hooks / Preparat-commit-msg, aby otrzymać zakomentowaną różnicę:
W ten sposób możesz nie tylko skomentować różnicę, ale także dodać więcej informacji (tak jak robi to opcja stat ).
Edycja: Również git commit --verbose nie dołącza różnic do komunikatu o zatwierdzeniu, w ten sposób obejdzie się bez #s.
źródło
# ------------------------ >8 ------------------------
, możesz znaleźć więcej git-scm.com/docs/git-commit#git-commit-scissorsJeśli chcesz zawsze widzieć różnicę po zatwierdzeniu, możesz dodać do swojego
~/.gitconfig
pliku:źródło
git config --global alias.commit 'commit -v'
i alias został dodany tak, jak sugerowałeś - po prostu automatycznie. Utworzyłem inny alias o nazwie,cv
który działa zgodnie z oczekiwaniami. Moja wersja git to 2.5.0, w pakiecie z Ubuntu 15.10.git config --global commit.verbose true