Git: как отличить два разных файла в разных ветвях?


У меня есть два разных файла в разных ветвях. Как я могу отличить их в одной команде?

что-то вроде

# git diff branch1/foo.txt branch2/foo-another.txt

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

4 135

4 ответа:

git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt

вы также можете использовать относительные пути:

git diff branch1:./relative/path/to/foo.txt branch2:./relative/path/to/foo-another.txt

Sidenote: нет необходимости в полных путях, вы можете начать с ./ для относительных путей. Это может быть удобно иногда.

git diff branch1:./relative/path/to/foo.txt branch2:./relative/path/to/foo-another.txt

есть много способов сравнить файлы из двух разных ветвей. Например:

  • если имя совпадает или отличается:

     git diff branch1:file branch2:file
    

    пример:

     git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt
    
  • только если имя совпадает, и вы хотите сравнить свой текущий рабочий каталог с какой-либо веткой:

    git diff ..someBranch path/to/file
    

    пример:

    git diff ..branch2 full/path/to/foo.txt
    

    в этом пример вы сравниваете файл из вашей фактической ветви файл в главной ветке.

вы можете проверить этот ответ:

сравните файл из двух разных ветвей в Git

просто добавить его, потому что я нахожу его очень простой синтаксис :

git diff <branch1> <branch2> <filepath>

также работает с относительными ссылками, например:

# compare the previous committed state from HEAD with the state branch1 was 3 commits ago
git diff HEAD^ <branch1>~3 <filepath>