В git commit
открытом редакторе сообщений отображается краткий статус, например:
# 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
#
Как я могу настроить git, чтобы также отображалась разница, которую нужно зафиксировать? Я понимаю, что это может быть длинное различие, но все же ... очень полезно.
git diff --cached
производит его, но зачем запускать отдельную команду, если она вам нужна каждый раз?Ответы:
--verbose
(Или-v
) флаг дляgit commit
отобразит дифф , что будет совершено:git commit --verbose
источник
Недостаточно репутации, чтобы опубликовать ответ на ответ Алана, но для Идана и всех остальных я просто попробовал это, и строки diff в сообщении фиксации явно не закомментированы. Однако, слава богу, они по-прежнему не отображаются в окончательном сообщении о фиксации.
$ git commit --verbose
В моем редакторе:
(обратите внимание на отсутствие
#
строк разницы в начале)А затем фактическое сообщение фиксации:
Очевидно, по-
git show
прежнему будет отображаться разница, но это потому, что она всегда отображается для коммитов. :)источник
# ------------------------ >8 ------------------------
- Я предполагаю, что git автоматически удаляет все, что появляется после него.git config --global commit.verbose true
Самый простой способ убедиться, что такое поведение всегда присутствует, - добавить этот раздел в свой
git config
файл:Возможно, вам потребуется настроить редактор для отображения в режиме сравнения (для выделения синтаксиса). Я использую Notepad2 в качестве замены Блокнота Windows и соответствующим образом
-s diff
устанавливаю цветовую схему (красный для удаленных строк и т. Д.):источник
Я поместил следующие строки в .git / hooks / prepare-commit-msg, чтобы получить закомментированный diff:
Таким образом, вы можете не только закомментировать разницу, но и добавить дополнительную информацию (как это делает параметр stat ).
Изменить: Также git commit --verbose не включает разницу в сообщение о фиксации, таким образом можно было бы обходиться без #s.
источник
# ------------------------ >8 ------------------------
вы можете найти больше git-scm.com/docs/git-commit#git-commit-scissorsЕсли вы хотите всегда видеть разницу при фиксации, вы можете добавить в свой
~/.gitconfig
файл следующее:источник
git config --global alias.commit 'commit -v'
и псевдоним был добавлен, как вы предложили - просто автоматически. Я создал еще один псевдоним,cv
который работает как и ожидалось. Моя версия git - 2.5.0, как и в Ubuntu 15.10.git config --global commit.verbose true