16 ответов:
чтобы увидеть разницу для конкретного
COMMITхэш:
git diff COMMIT~ COMMITпокажет вам разницу между этимCOMMIT'предок иCOMMIT. Смотрите справочные страницы для git diff подробнее о команде и gitrevisions о~нотация и ее друзья.кроме того,
git show COMMITбудет делать что-то очень похожее. (Данные фиксации, включая ее diff-но не для коммитов слияния.) Смотрите git show man-страницы.
как говорилось в "Стенография для diff git commit с его родителем?", вы также можете использовать
git diffС:git diff COMMIT^!или
git diff-tree -p COMMITС git show вам нужно будет (чтобы сосредоточиться только на diff) сделать:
git show --color --pretty=format:%b $COMMITThe
COMMITпараметр a commit-ish:A commit object или объект что может быть рекурсивно ссылка на объект фиксации. Ниже приведены все фиксации: объект фиксации, a тег Object который указывает на объект фиксации, объект тега, который указывает на объект тега, который указывает на объект фиксации и т. д.
посмотреть gitrevision "указание ревизий" для ссылки на фиксацию.
См. также "что означает tree-ish в Git?".
git showпоказывает изменения, внесенные в последние совершал.эквивалентно
git show HEAD.
git show HEAD~1возвращает вам 1 фиксацию.
сначала получить идентификатор фиксации с помощью,
git log #to list allили
git log -p -1 #last one commit idскопировать идентификатор фиксации.
теперь мы используем два метода для перечисления изменений из конкретной фиксации,
Способ 1:
git diff commit_id^! #commit id something like this 1c6a6000asad012Способ 2:
git show commit_id For example: git show 1c6a600a
из 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 difftool COMMIT^ <commit hash>также возможно, если вы настроили свой difftool.
смотрите здесь как настройка difftool Или на странице руководства здесь
дополнительно вы можете использовать
git diff-tree --no-commit-id --name-only -r <commit hash>чтобы увидеть, какие файлы были изменены / зафиксированы в хэше give commit
git show <commit_sha>Это покажет вам, что именно в этой фиксации. Я думаю, что вы можете сделать это, просто поставив пробел между двумя совершать ШАС.
git show <beginning_sha> <ending_sha>что довольно полезно, если вы перебазирования часто, потому что ваша функция регистрирует все подряд.
чтобы увидеть автора и время фиксации использовать
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'если вы хотите увидеть, какие файлы были изменены, выполните следующие действия со значениями из строки слияния выше
git diff --stat a2a2894 3a1ba8f.если вы хотите увидеть фактическую разницу, запустите
git --stat a2a2894 3a1ba8f
Я запускаю Git версии 2.6.1.окна.1 на Windows 10, поэтому мне нужна была небольшая модификация ответа Невика (Тильда вместо каретки):
git diff COMMIT~ COMMITдругой вариант-процитировать каре:
git diff "COMMIT^" COMMIT
вы могли бы использовать
git diff HEAD HEAD^1чтобы увидеть разницу с родительской фиксацией.Если вы хотите видеть только список файлов, добавьте .
эта команда даст вам git parent commit-hash:
git log -n 2 <commit-hash>после этого
git diff-tool <commit-hash> <parent-commit-hash>пример:
bonnie@bonnie ~/ $ git log -n 2 7f65b9a9d3820525766fcba285b3c678e889fe3 commit 7f65b9a9d3820525766fcba285b3c678e889fe3b Author: souparno <[email protected]> Date: Mon Jul 25 13:17:07 2016 +0530 CSS changed to maintain the aspect ratio of the channel logos and to fit them properly. commit c3a61f17e14e2b80cf64b172a45f1b4826ee291f Author: souparno <[email protected]> Date: Mon Jul 25 11:28:09 2016 +0530 The ratio of the height to width of the channel images are maintained.после этого
git difftool 7f65b9a9d3820525766fcba285b3c678e889fe3b c3a61f17e14e2b80cf64b172a45f1b4826ee291f
мне нравится следующая команда для сравнения конкретного коммита и его последнего коммита:
git diff <commit-hash>^-пример:
git diff cd1b3f485^-
в случае проверки изменения источника в графическом представлении,
$gitk (Mention your commit id here)например:
$gitk HEAD~1
Comments