git поддерживает имена ветвей как часть путей к репозиторию. Например, если в вашем хранилище есть следующие файлы, README
только для master
и UNREADME
только для branch
:
master:README
branch:UNREADME
Вы можете изменить их с помощью git:
git diff branch:UNREADME master:README
Вы можете получить артефакт хранилища для стандартного вывода с помощью git show
:
git show branch1:UNREADME
Так что, если ваша внешняя утилита diff может принять 2 файла в приглашении bash, вы можете сравнить их с чем-то вроде:
diff-command <(git show branch1:UNREADME) <(git show master:README)
Где синтаксис <(...)
bash берет выходные данные вложенной команды, запускает их в конвейере и помещает путь к файлу конвейера в командной строке.