устанавливает цветовую схему соответствующим образом (красный для удаленных линий и т. д.):

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 для отображения различий, которые нужно совершить? Я знаю, что это может быть длинный дифференциал, но все же .. такой полезный.

 lkraav24 февр. 2012 г., 12:36
github.com/tpope/vim-fugitive/issues/149 следит за этим для беглеца, на случай, если вам интересно. Если нет, то так и должно быть.
 Jed Schneider20 янв. 2011 г., 18:07
это дает вам некоторую информацию, которую вы не получаете с 'git log -p'?
 Mark Rushakoff20 янв. 2011 г., 18:06
Что вы пытаетесь сделать, чтобы вам потребовались изменения, перечисленные в сообщении фиксации? У вас может возникнуть недоразумение с определенным инструментом, и мы сможем помочь вам обойти реальную проблему.
 Cascabel20 янв. 2011 г., 19:55
@Mark: ОП хочет, чтобы различия были закомментированы. Это более подробная версия закомментированной подсказки по умолчанию. @Jed: ОП хочет эту информацию в шаблоне сообщения о коммите. даgit diff --cached производит его, но зачем запускать отдельную команду, если вы хотите каждый раз?

Ответы на вопрос(5)

вы можете добавить следующее к вашему~/.gitconfig файл:

[alias]
commit = commit -v
 Taylor Edmiston03 дек. 2017 г., 00:40
Чтобы установить это из командной строки:git config --global commit.verbose true
 Miguel de Val-Borro09 нояб. 2015 г., 05:10
вы не можете переопределить команду git псевдонимом
 Daniel Böhmer08 февр. 2016 г., 16:54
Ваш ответ выглядит многообещающим, но у меня тоже не работает. Я пыталсяgit config --global alias.commit 'commit -v' и псевдоним был добавлен, как вы предложили - просто автоматически. Я создал другой псевдоним с именемcv это работает как ожидалось. Моя версия git 2.5.0, как упаковано в Ubuntu 15.10.
 rusty12 нояб. 2015 г., 16:24
Вы можете, однако, - на какой версии Git вы? Это работает для меня с версией 2.0.0

чтобы опубликовать ответ на ответ Алана, но для Идана и всех остальных я только что попробовал это, и строки различий в сообщении фиксации явно не закомментированы. Тем не менее, они все еще не отображаются в последнем сообщении о коммите, слава богу.

$ git commit --verbose

В моем редакторе:

Feeling a bit pessimistic now.

# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
#   (use "git reset HEAD <file>..." to unstage)
#
#   modified:   README
#
diff --git a/README b/README
index af5626b..c62237e 100644
--- a/README
+++ b/README
@@ -1 +1 @@
-Hello, world!
+Goodbye, world!

(обратите внимание на отсутствие# предшествующие линии различий)

А затем фактическое сообщение о коммите:

$ git log -n 1
commit ad21a2655ef6d8173c2df08dc9893055b26bc068
Author: Tom Jakubowski <[email protected]>
Date:   Thu Oct 27 19:12:54 2011 -0700

    Feeling a bit pessimistic now.

Очевидно, чтоgit show будет по-прежнему показывать различия, но это потому, что это всегда происходит для коммитов. :)

 Jan Warchoł05 мар. 2015 г., 11:25
В новых версиях git (у меня 2.3) перед diff стоит следующая строка:# ------------------------ >8 ------------------------ - Я предполагаю, что Git автоматически удаляет все, что появляется после него.
 Daniel Liuzzi08 июн. 2016 г., 16:02
@AnthonyPanozzo Похоже, что это не работает на 2.5.3. Несмотря на маркер «Не трогать линию выше», полный отчет в любом случае заканчивается в сообщении фиксации.
 Anthony Panozzo23 мая 2015 г., 16:19
Начиная с версии 2.4.1, я вижу: # ------------------------> 8 ------------ ------------ # Не прикасайтесь к строке выше. # Все ниже будет удалено. так что это подтверждает то, что вы думали.
 Taylor Edmiston03 дек. 2017 г., 00:38
Чтобы установить это из командной строки:git config --global commit.verbose true
 Anthony Panozzo08 июн. 2016 г., 16:06
У меня работает в 2.8.2

Самый простой способ убедиться, что это поведениевсегда настоящее время добавить этот раздел в вашgit config файл:

[commit]
  verbose = true

Возможно, вам потребуется настроить редактор для отображения в режиме diff (для подсветки синтаксиса). Я использую Notepad2 вместо Windows Notepad, и-s diff устанавливает цветовую схему соответствующим образом (красный для удаленных линий и т. д.):

[core]
  editor = C:/Windows/system32/notepad.exe -s diff
Решение Вопроса

--verbose (или же-v) флаг дляgit commit будет отображать разницу в том, что будет совершено:

git commit --verbose

 Brandon Rhodes25 мар. 2012 г., 13:21
Сообщения diff не нужно комментировать, Идан; Git знает, что игнорировать их, как если бы они были комментариями.
 Idan K24 февр. 2011 г., 16:34
кажется, что разница не закомментирована, есть ли способ сделать ее комментарием по умолчанию?
 Dennis C08 апр. 2013 г., 02:58
@BrandonRhodes Как сказать, что git bit ti игнорирует diff? У меня есть скрипт для генерации нескольких дополнительных строк в формате diff, но он обрезан с первой строки
 Christopher28 авг. 2013 г., 03:59
@IdanK, преимущество в том, что строки diff, не закомментированные в шаблоне сообщения коммита, заключаются в том, что раскраска кода vim работает с добавленным контентом diff (если у вас установлены дополнения типа файлов git для vim). Если бы эти различия были закомментированы, эта раскраска не сработала бы.
 Daniel Liuzzi08 июн. 2016 г., 16:11
Не обращайте внимания на мой предыдущий комментарий; виновником был плагин EditorConflig, возни с линией «Не трогай линию выше».

Я поместил следующие строки в.git / Крючки / подготовить фиксации-сообщ чтобы получить закомментированный diff:

#!/bin/bash

if [ "$2" == "" ] ; then
    git diff --staged -p --stat 2> /dev/null | awk '{ printf "#"; print}' >> "$1"  2>/dev/null
fi

Таким образом, вы можете не только закомментировать различия, но и добавить больше информации (например,стат вариант делает).

Редактировать: Такжеgit commit --verbose не включает diff в сообщение коммита, таким образом обойдется без #.

 A B11 мая 2017 г., 00:03
Вместо комментирования вы можете использовать# ------------------------ >8 ------------------------ вы можете найти большеgit-scm.com/docs/git-commit#git-commit-scissors

Ваш ответ на вопрос