Когда я это git diff COMMIT
вижу, я вижу изменения между этим коммитом и HEAD (насколько я знаю), но я бы хотел видеть изменения, которые были внесены этим единственным коммитом.
Я не нашел никаких очевидных опций для diff
/ log
, которые дадут мне такой вывод.
git
version-control
diff
git-diff
laktak
источник
источник
Ответы:
Чтобы увидеть разницу для конкретного
COMMIT
хэша:git diff COMMIT~ COMMIT
покажет вам разницу между этимCOMMIT
предком иCOMMIT
. См. Справочные страницы для git diff для получения подробной информации о команде и gitrevisions о~
нотации и ее друзьях.В качестве альтернативы
git show COMMIT
сделаем что-то очень похожее. (Данные коммита, включая его diff - но не для коммитов слияния.) Смотрите man-страницу git show .источник
^
необходимо указывать в оболочках Томсона и Борна (синоним для|
них) иrc
его производных (оператор каретки), а такжеzsh
с включенным extendedglob (not
оператор глобинга)HEAD^
подразумевается первый родитель в случае, если коммит имеет несколько родителей (т.е. коммит слияния).git diff COMMIT~ COMMIT
работает для меня, обратите внимание на тильду вместо карета. Я использую git версии 2.6.1.windows.1 в Windows 10.Как упоминалось в « Сокращении для diff из git commit с его родителем? », Вы также можете использовать
git diff
с:или
С git show вам нужно (чтобы сосредоточиться только на diff) сделать:
COMMIT
Параметр является МОГ-фиксации :Смотрите gitrevision "УКАЗАНИЯ ПЕРЕСМОТРОВ", чтобы ссылаться на коммит.
Смотрите также « Что означает древовидность в Git? ».
источник
Вы также можете попробовать этот простой способ:
источник
git show
показывает изменения, сделанные в последнем коммите.Эквивалент
git show HEAD
.git show HEAD~1
возвращает 1 коммит.источник
Я обычно делаю:
Чтобы показать изменения, касающиеся последнего коммита. Если у вас больше коммитов, просто увеличьте число 1 до того, сколько коммитов diff вы хотите увидеть.
источник
Сначала получите идентификатор фиксации, используя,
Или
Скопируйте идентификатор фиксации.
Теперь мы используем два метода, чтобы вывести список изменений из определенного коммита,
Способ 1:
git diff commit_id^! #commit id something like this 1c6a6000asad012
Способ 2:
источник
^!
значит ??Это покажет вам, что в этом коммите. Я думаю, что вы можете сделать это, просто поместив пробел между двумя коммитами.
что очень полезно, если вы часто перебираете, потому что ваши журналы функций будут все в ряд.
источник
Со страницы руководства для git-diff (1) :
Используйте третий в середине:
Также из той же справочной страницы, внизу, в разделе примеров :
По общему признанию это сформулировано немного запутанно, это было бы менее запутанно, поскольку
источник
git diff HEAD HEAD^
.Следующее, кажется, делает работу; Я использую это, чтобы показать, что было внесено слиянием.
источник
git log
? (из-за stackoverflow.com/a/18585297/6309 )Другая возможность:
источник
Вы могли бы использовать
git diff HEAD HEAD^1
чтобы увидеть diff с родительским коммитом.Если вы хотите видеть только список файлов, добавьте эту
--stat
опцию.источник
diff
команду следующим образом: что мне нужно изменить в файле, чтобы получить от commitHEAD
до commitHEAD^1
?также возможно, если вы настроили свой difftool.
Смотрите здесь, как настроить difftool. Или страницу руководства здесь.
Кроме того, вы можете использовать,
git diff-tree --no-commit-id --name-only -r <commit hash>
чтобы увидеть, какие файлы были изменены / зафиксированы в хеше данного подтверждения.источник
Мне нравится команда ниже, чтобы сравнить конкретный коммит и его последний коммит:
Пример:
источник
Чтобы увидеть автора и время использования коммитов
git show COMMIT
. Что приведет к чему-то вроде этого:Если вы хотите увидеть, какие файлы были изменены, запустите следующее со значениями из строки слияния выше
git diff --stat a2a2894 3a1ba8f
.Если вы хотите увидеть фактический diff, запустите
git --stat a2a2894 3a1ba8f
источник
git --stat a2a2894 3a1ba8f
". Я думаю, что вы имеете в видуgit diff a2a2894 3a1ba8f
или иначеunknown option: --stat
.Для проверки полных изменений:
Для проверки только измененных / добавленных / удаленных файлов:
ПРИМЕЧАНИЕ . Для проверки diff без фиксации между ними вам не нужно указывать идентификаторы коммитов.
источник
Я использую Git версии 2.6.1.windows.1 в Windows 10, поэтому мне нужно было немного изменить ответ Невика (тильда вместо каретки):
Другой вариант - процитировать карету:
источник
Эта команда получит хэш родительского коммита Git:
После того
git diff-tool <commit-hash> <parent-commit-hash>
Пример:
После этого
источник
Если вы просто хотите увидеть изменения в последнем коммите, просто
git show
сообщу вам об этом.источник
В случае проверки изменения источника в графическом представлении,
например:
источник