Do I have to commit a merge to make git-rerere record my conflict resolution?

后端 未结 2 1312
夕颜
夕颜 2020-12-31 04:33

I\'m using git-rerere for its intended purpose, to record conflict resolutions between two branches (master and a topic branch) incrementally as those branches

相关标签:
2条回答
  • 2020-12-31 04:47

    From the manpage:

    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.
    

    And:

    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).
    

    So you don't have to commit and undo the commit. You can just run git rerere without parameters to record the commit.

    0 讨论(0)
  • 2020-12-31 04:48

    Is it sufficient to just stage the conflicted files

    You must be sure to resolve the conflict without leaving conflict markers.

    See commit f427869, commit bc4caec (28 Aug 2018) by Thomas Gummerer (tgummerer).
    Suggested-by: Junio C Hamano (gitster).
    (Merged by Junio C Hamano -- gitster -- in commit d88949d, 17 Sep 2018)

    See commit b9b07ef (28 Aug 2018) by Thomas Gummerer (tgummerer).
    Helped-by: Junio C Hamano (gitster).
    (Merged by Junio C Hamano -- gitster -- in commit 4dd0c4a, 17 Sep 2018)

    .gitattributes: add conflict-marker-size for relevant files

    Some files in git.git contain lines that look like conflict markers, either in examples or tests, or in the case of Documentation/gitk.txt because of the asciidoc heading.

    Having conflict markers the same length as the actual content can be confusing for humans, and is impossible to handle for tools like 'git rerere'.

    Work around that by setting the 'conflict-marker-size' attribute for those files to 32, which makes the conflict markers unambiguous.

    0 讨论(0)
提交回复
热议问题