Я хотел бы проверить любые изменения кода после выполнения файла git pull. В настоящее время он просто показывает мне, какие файлы меняются. Как узнать, какой код был изменен?
Ответы:
git log --name-status -2
Покажет вам имена файлов, которые изменились за последние два коммита.
git log -p -2
Покажу сами изменения.
Прежде чем тянуть,
git fetch
git log --name-status origin/master..
Покажет вам, какие коммиты вы собираетесь получить, а также имена файлов.
Вы можете просмотреть изменения, как говорит @iblue, с помощью fetchи diffперед объединением:
$ git fetch
$ git diff master...origin/master
Обратите внимание на тройную точку, которая означает разницу с общим родителем и источником / мастером (коммиты отмечены xниже):
SP---o---o [master]
\
x---x [origin/master]
Самая первая строка в выводе pull выглядит так:
$ git pull
Updating 37b431a..b2615b4
...
Затем вы можете просто сделать:
$ git diff 37b431a..b2615b4
Или любой другой командой:
$ git log --name-status 37b431a..b2615b4
Если с момента вытягивания прошло некоторое время, и вы хотите узнать, какие изменения были внесены в результате последнего вытягивания, вы можете посмотреть его с помощью:
$ git reflog | grep -A1 pull | head -2
который покажет хэш после извлечения, за которым следует хеш перед извлечением:
b2615b4 HEAD@{0}: pull : Fast-forward
37b431a HEAD@{1}: checkout: moving from v6.1 to master
Затем вы можете сделать то же самое с этими двумя хешами:
git diff 37b431a..b2615b4
Поскольку git pullэто просто ярлык для git fetchи git merge, вы можете запустить, git fetchчтобы получить ветви из источника, а затем показать различия перед объединением. Как это:
git fetch # Load changes from remote server
git diff master origin/master # Show differences
git merge origin/master # Merge remote changes with local changes
Если вы работаете в ветке, отличной от основной , вы, конечно, должны изменить имена веток в приведенных выше командах.
Вы можете сравнить извлеченное содержимое с источниками непосредственно предыдущей фиксации,
git diff branch_name@{1}
например:
git diff master@{1}
Для сравнения с источниками, за которые n коммитов,
git diff branch_name@{n}
@{n}Синтаксис фактически означает nthпредыдущее положение отводных / голов. Например, если было проведено 10 фиксаций , так как в последний раз вы сделали тянуть, master@{1}будет относиться к предыдущему положению в master, который находится в 10 фиксаций ранее. Вот почему использование @{n}полезно для проверки изменений после вытягивания.
Вы можете проверить, какие изменения произошли во время толкания и тяги, с помощью этого ...
git log --stat