0

我的工作流程通常包括merge -> resolve conflicts -> commit -> debug during compilation -> fixup commit. 通过这种方式,我随后将脏合并与清除合并。如果启用rerere,我将始终记录脏分辨率。如何绕过这个问题?有没有办法rerere通过提交来解决问题?

4

2 回答 2

0

我的工作流程通常包括:

进行更改 -> 测试 -> 提交 -> 进行更多更改 -> 测试 -> 提交 -> 重复。

这给了我多个本地提交,它们共同构成了需要做的事情。当我感觉完成时,我运行:

git rebase -i HEAD~[nr_of_commits_i_created]

我确保修复除第一个之外的所有内容。第一个我要么保持原样,要么最后一次改写。现在我最终得到了 1 个包含我所有更改的提交。我以我的主分支为基础,解决任何冲突并推送我的更改。

这样我就不必真正处理合并。

我意识到这并不能直接回答您的问题。

于 2018-03-30T07:13:24.870 回答
0

这很笨拙,但是我为最后一次大的糟糕合并做了什么。

起初,我在 tmp 分支的合并状态之前检查了我的分支。然后运行类似的合并。然后执行以下过程:

for F in `git show $FIXCOMMIT --stat | awk '{print $1}' | tail -n +7 | head -n -1`; do
    git checkout -m $F
    git rerere forget $F
    cp $FIXED/$F ./$F
done

FIXCOMMIT 是提交修复的地方。并且 FIXED 是具有 FIXCOMMIT 状态的工作树。

作为一个教训,我认为一个人不应该在编译之前提交合并。

于 2018-03-29T09:59:59.663 回答