Лучший способ проверить diff файл за файлом между 2 ветками / коммитов? - PullRequest
2 голосов
/ 01 февраля 2020

Я только что закончил довольно большую ветку, над которой я работаю более 2 месяцев. Я просто перебил мастера на это и должен был разрешить несколько конфликтов. Теперь, когда я перебазировал свою функциональную ветвь, как я могу go просматривать файл за файлом, чтобы увидеть выделенные различия этого сравнения в избранной ветви по сравнению с основной веткой, чтобы убедиться, что перебазировка была выполнена правильно?

Ответы [ 3 ]

3 голосов
/ 01 февраля 2020

Например:

git diff master

Вы можете указать один файл за раз:

git diff master -- some-file-path
1 голос
/ 01 февраля 2020

Большинство ответов здесь предлагают использовать git diff, но con этого подхода заключается в том, что он показывает diff прямо в консоли, что не всегда удобно.
Вот некоторые альтернативы, которые будут вместо этого откройте GUI.

Используя Gitk
Обычно, в то время как git (особенно на Windows, с git -scm ) вы получите инструмент GUI под названием GitK, который можно использовать для отображения изменений. Итак, просто наберите:

gitk --all

И откроется GUI, где вы сможете увидеть коммиты и изменения, сделанные каждым коммитом.

enter image description here

Использование DiffTool

Используйте взамен git difftool и отобразите diff в предпочтительном инструменте различий.
Просто введите difftool вместо diff in Консоль выглядит так:

Чтобы увидеть изменения между двумя ветвями:

# For all the files
git difftool branch1..branch2

# For a single file
git difftool branch1..branch2 "filepath"

Чтобы увидеть изменения последнего коммита

# For all the files
git difftool HEAD~1

# For a single file
git difftool HEAD~1 "filepath"

Чтобы увидеть изменения с фиксация с идентификатором (все / один файл):

# For all the files
git difftool commitId

# For a single file
git difftool commitId "filepath"

Чтобы увидеть изменения между 2 коммитами:

# For all the files
git difftool commitId1..commitId2

# For a single file
git difftool commitId1..commitId2 "filepath"

Примечания

  • difftool откроет инструмент сравнения по умолчанию, который обычно имеет значение VimDiff.
    Но если вы хотите изменить его на что-то другое, просто измените id с помощью this .
    В моем случае я использовал Visual Studio в качестве инструмента сравнения , и вот как это работает: enter image description here
  • Если вы все еще хотите чтобы увидеть изменения прямо в консоль , просто используйте команды выше с git diff вместо git difftool, оставив параметры такими же.
1 голос
/ 01 февраля 2020
git diff branch1..branch2

Используя эту команду, Git сравнит наконечник обеих ветвей (также называемый HEAD) и отобразит резюме «diff», которое можно использовать для просмотра изменений. Короче говоря, он покажет вам все коммиты, которые имеет «branch2», которых нет в «branch1».

git diff branch1...branch2

Использование «git diff» с тремя точками сравнивает верхнюю часть правой ветви ( ГОЛОВА) с общим предком двух ветвей.

...