Если вы имеете в виду «без проверки всех файлов в каждой ветке», то да.Merge необходимо изучить потенциальные конфликты и, возможно, придется оставить их для изучения / исправления, поэтому для этого нужно рабочее дерево, но вам не нужно проверять все файлы, вы можете просто настроить индекс иHEAD и оставьте рабочее дерево пустым.
Это означает, что вы можете сделать слияние очень дешево в клоне tmpfs.
rm -rf ${scratchmerge=`mktemp -d`}
git clone -nsb branch1 $scratchmerge # minimal clone, <1MB even for the linux repo
cd $_
git reset -q
git merge master
fix any conflicts and commit if needed
git push
cd -
Опция -n
позволяет клону не выполнятьизвлечение, то есть рабочее дерево остается пустым (и индекс не читается), опция -s
заставляет клона совместно использовать объектный источник db, который является именно тем, что вы хотите для такой работы, как эта, и -b
опция устанавливает HEAD
, проверенная ветка.В общем, этот клон использует всего несколько десятков килобайт (для ссылок клона плюс эшафот репо).
git reset -q
загружает индекс из фиксации HEAD
, вы можете эквивалентно git read-tree HEAD
здесь и для сценария, который был бы более педантично правильным, это эквивалент команды ядра.
И оттуда это нормально: объединить, исправить конфликты, нажать.