Обратите внимание, что во время ручного объединения некоторого конфликтующего файла file.ext
, все три версии этого файла хранятся в области индекса / промежуточного хранения в трех слотах, зарезервированных дляэтот случай.Они пронумерованы:
- слот 1 содержит базовую версию;
- слот 2 содержит версию
--ours
из фиксации HEAD
; - удерживает слот 3
--theirs
версия из другого коммита.
Хотя git checkout
имеет --ours
и --theirs
для извлечения этих двух версий, в базовой версии отсутствует опция.Однако git show
можно использовать для извлечения всех трех версий: например,
git show :1:file.ext > file.ext.base
git show :2:file.ext > file.ext.ours
git show :3:file.ext > file.ext.theirs
.
Если вы когда-либо используете команду git mergetool
, это просто оболочка сценария оболочки, котораявыполняет вышеупомянутое (используя немного разные имена), а затем запускает выбранный инструмент слияния для этих трех файлов.