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