Я предполагаю, что «не могу сделать это за один присест», вы на самом деле имеете в виду «хотите сделать что-то еще до того, как я закончу» - иначе вы могли бы просто оставить частично разрешенное слияние в вашем рабочем дереве. *
Во-первых, прежде чем приступить к каким-либо проблемам, обратите внимание, что вы можете просто создать еще один клон хранилища - частично разрешенное слияние может остаться в одном, а другую работу - в другом.
Все это говорит о том, что если вы действительно хотите сохранить работу, проделанную вами для частичного разрешения слияния, я рекомендую использовать git rerere
(REuse REcorded REsolutions).
Для начала убедитесь, что для rerere.enabled
установлено значение true - это будет охватывать большинство случаев обычного использования. Это заставляет git rerere
автоматически запускаться сразу после возникновения конфликтов слияния - в этот момент вы увидите сообщения вида Recorded preimage for '<path>'
. Он также запускается автоматически, когда вы совершаете слияние; тогда вы увидите сообщения вида Recorded resolution for '<path>'.
. Затем эти разрешения могут быть повторно использованы позже, когда появятся те же противоречивые фрагменты.
Теперь в вашем случае произойдет первый автоматический триггер - будут записаны прообразы. Но вы не готовы совершить слияние, поэтому после разрешения некоторых конфликтующих файлов и пометки их как разрешенных (добавления их в индекс) вы можете вместо этого запустить git rerere
(без аргументов) напрямую . Он будет записывать разрешения для всего, что вы пометили как решенное, но игнорировать все, что еще не разрешено. Затем вы можете просто уничтожить попытку слияния (git reset --merge
), и при следующей попытке записанные разрешения будут использованы повторно!