Должен ли я выполнить слияние, чтобы сделать git -rerere запись моего разрешения конфликта?

Я использую git-rerere по своему назначению, чтобы записывать разрешения конфликтов между двумя ветвями (ведущее и ветвь темы) постепенно по мере развития этих ветвей, не создавая ненужных коммитов. Однако даже после чтения git -rerere manpage я немного неясен, когда reerre действительно записывает мое разрешение конфликта. Мой стандартный рабочий процесс для обнаружения и разрешения новых конфликтов слияния состоит в том, чтобы сделать git merge master из ветки темы, разрешить конфликты, затем скомпоновать все файлы и передать слияние с помощью git commit -m "Finished test merge", а затем отменить слияние с помощью git reset --hard HEAD^, оставив за только записанными разрешениями, хранящимися на git-rerere.

Однако это кажется немного глупым. Создайте фиксацию, а затем отмените ее только для записи разрешения? После прочтения man-страницы для git-rerere, я все еще не совсем понимаю, когда записывает мои разрешения. Достаточно ли просто скомпоновать конфликтующие файлы или мне действительно нужно создать фиксацию слияния после разрешения конфликтов, например, я делал?

Ответы

Ответ 1

Из man-страницы:

Running the git rerere command immediately after a conflicted automerge
records the conflicted working tree files, with the usual conflict
markers <<<<<<<, =======, and >>>>>>> in them. Later, after you are
done resolving the conflicts, running git rerere again will record the
resolved state of these files.

и

As a convenience measure, git merge automatically invokes git rerere
upon exiting with a failed automerge and git rerere records the hand
resolve when it is a new conflict, or reuses the earlier hand resolve
when it is not. git commit also invokes git rerere when committing a
merge result. What this means is that you do not have to do anything
special yourself (besides enabling the rerere.enabled config variable).

Таким образом, вам не нужно совершать и отменять фиксацию. Вы можете просто запустить git rerere без параметров для записи фиксации.