У меня есть два разных файла в разных ветках. Как я могу изменить их в одной команде?
Что-то вроде
# git diff branch1/foo.txt branch2/foo-another.txt
Я мог бы проверить другой файл, проверить его и восстановить, но это довольно грязное решение.
У меня есть два разных файла в разных ветках. Как я могу изменить их в одной команде?
Что-то вроде
# git diff branch1/foo.txt branch2/foo-another.txt
Я мог бы проверить другой файл, проверить его и восстановить, но это довольно грязное решение.
Ответы:
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
git help diff. Между прочим, они не должны быть именами ветвей перед двоеточиями, но могут быть любыми ссылками коммитов (например, значениями SHA-1).
git difftoolа затем опустите branch2:и, что позволит вам редактировать файл в текущем рабочем дереве (чтобы перенести изменения из него branch1)
Есть много способов сравнить файлы из двух разных веток. Например:
Если имя одно и то же или другое:
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 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>
Вы можете указать начало и диапазон для git diffприменения. Диапазон указывается с ..обозначением.
branch1=somebranch
branch2=someotherbranch
git diff ${branch1}..${branch2} -- file_path