files - git show changes in file




Как увидеть изменения в Git? (11)

В случае проверки изменения источника в графическом представлении,

$gitk (Mention your commit id here)

например:

$gitk HEAD~1 

Когда я делаю git diff COMMIT я вижу изменения между этим сообщением и HEAD (насколько я знаю), но я хотел бы видеть изменения, которые были сделаны этим единственным сообщением.

Я не нашел никаких очевидных опций в diff / log, которые дадут мне этот вывод.


Вы можете использовать git diff HEAD HEAD^1 чтобы увидеть diff с родительским фиксатором.

Если вы хотите просмотреть список файлов, добавьте параметр --stat .


Другая возможность:

git log -p COMMIT -1


Как упоминалось в « Сокращении для diff git commit со своим родителем? », Вы также можете использовать git diff с:

git diff COMMIT^!

или же

git diff-tree -p COMMIT

С git-шоу вам понадобится (для того, чтобы сосредоточиться на разных тестах):

git show --color --pretty=format:%b $COMMIT

Параметр COMMIT является commit-ish :

Объект фиксации или object который может быть рекурсивно разыменован объектом фиксации. Ниже перечислены все commit-ishes: объект commit, объект тега, который указывает на объект фиксации, объект тега, который указывает на объект тега, который указывает на объект фиксации и т. Д.

См. Gitrevision «УКАЗАНИЕ РЕВИЗИОНОВ» для ссылки на commit-ish.
См. Также « Что означает древовидное в Git? ».


На странице man для git-diff(1) :

git diff [options] [<commit>] [--] [<path>…]
git diff [options] --cached [<commit>] [--] [<path>…]
git diff [options] <commit> <commit> [--] [<path>…]
git diff [options] <blob> <blob>
git diff [options] [--no-index] [--] <path> <path>

Используйте третий в середине:

git diff [options] <parent-commit> <commit>

Также на той же странице руководства внизу в разделе « Примеры» :

$ git diff HEAD^ HEAD      <3>

Сравните версию перед последним фиксацией и последним фиксацией.

По общему признанию, это немного смутно, это будет менее запутанным, чем

Сравните последнюю фиксацию с фиксацией перед ней.


Следующее, похоже, выполняет эту работу; Я использую его, чтобы показать, что привело к слиянию.

git whatchanged -m -n 1 -p <SHA-1 hash of merge commit>

Чтобы просмотреть автора и время, используйте git show COMMIT . Что приведет к чему-то вроде этого:

commit 13414df70354678b1b9304ebe4b6d204810f867e
Merge: a2a2894 3a1ba8f
Author: You <[email protected]>
Date:   Fri Jul 24 17:46:42 2015 -0700

     Merge remote-tracking branch 'origin/your-feature'

Если вы хотите увидеть, какие файлы были изменены, запустите следующую строку со значениями из строки Merge выше git diff --stat a2a2894 3a1ba8f .

Если вы хотите увидеть фактический diff, запустите git --stat a2a2894 3a1ba8f


Чтобы увидеть diff для конкретного хеша COMMIT :

git diff COMMIT~ COMMIT покажет вам разницу между этим предком COMMIT и COMMIT . См. Man-страницы для git diff для получения подробной информации о команде и gitrevisions о ~ нотации и ее друзьях.

Кроме того, git show COMMIT сделает что-то очень похожее. (Данные фиксации, в том числе ее diff, но не для комминирования, комментируются.) См. Справочную страницу git show .


Я запускаю Git версии 2.6.1.windows.1 в Windows 10, поэтому мне потребовалась небольшая модификация ответа Невика (тильда вместо каретки):

git diff COMMIT~ COMMIT

Другой вариант - процитировать каретку:

git diff "COMMIT^" COMMIT

git show показывает изменения, внесенные в последнюю фиксацию.

Эквивалент git show HEAD .

git show HEAD~1 возвращает вас 1 commit.


git show <commit_sha>

Это покажет вам, что именно в этом коммите. Я думаю, вы можете сделать диапазон, просто разместив пространство между двумя шашками фиксации.

git show <beginning_sha> <ending_sha>

что очень полезно, если вы часто перезагружаетесь, потому что ваши журналы функций будут в очереди.





git-diff