如何"fixup"git重新解析
How to "fixup" git rerere resolution
我的工作流程通常包括 merge -> resolve conflicts -> commit -> debug during compilation -> fixup commit
。通过这种方式,我之后将脏合并与清理合并。如果我启用 rerere
,我将始终记录脏分辨率。如何绕过这个问题?有没有办法通过提交来修复 rerere
分辨率?
这很笨拙,但我为上次大的错误合并做了什么。
起初我在 tmp 分支中检查我的分支到合并状态之前。
然后运行类似合并。然后执行以下过程:
for F in `git show $FIXCOMMIT --stat | awk '{print }' | tail -n +7 | head -n -1`; do
git checkout -m $F
git rerere forget $F
cp $FIXED/$F ./$F
done
其中 FIXCOMMIT 提交修复。 FIXED 是具有 FIXCOMMIT 状态的工作树。
作为一个教训,我认为不应该在编译前提交合并。
我的工作流程通常包括:
Make changes -> test -> commit -> make more changes -> test -> commit -> repeat.
这给了我多个本地提交,它们共同构成了需要完成的工作。当我觉得完成时,我 运行:
git rebase -i HEAD~[nr_of_commits_i_created]
而且我确保修复除第一个以外的所有问题。第一个我要么保持原样,要么最后一次改写。现在我最终得到包含我所有更改的 1 个提交。我基于我的 master 分支,解决任何冲突并推送我的更改。
这样我就再也不用处理合并了。
我知道这并不能直接回答您的问题。
我的工作流程通常包括 merge -> resolve conflicts -> commit -> debug during compilation -> fixup commit
。通过这种方式,我之后将脏合并与清理合并。如果我启用 rerere
,我将始终记录脏分辨率。如何绕过这个问题?有没有办法通过提交来修复 rerere
分辨率?
这很笨拙,但我为上次大的错误合并做了什么。
起初我在 tmp 分支中检查我的分支到合并状态之前。 然后运行类似合并。然后执行以下过程:
for F in `git show $FIXCOMMIT --stat | awk '{print }' | tail -n +7 | head -n -1`; do
git checkout -m $F
git rerere forget $F
cp $FIXED/$F ./$F
done
其中 FIXCOMMIT 提交修复。 FIXED 是具有 FIXCOMMIT 状态的工作树。
作为一个教训,我认为不应该在编译前提交合并。
我的工作流程通常包括:
Make changes -> test -> commit -> make more changes -> test -> commit -> repeat.
这给了我多个本地提交,它们共同构成了需要完成的工作。当我觉得完成时,我 运行:
git rebase -i HEAD~[nr_of_commits_i_created]
而且我确保修复除第一个以外的所有问题。第一个我要么保持原样,要么最后一次改写。现在我最终得到包含我所有更改的 1 个提交。我基于我的 master 分支,解决任何冲突并推送我的更改。
这样我就再也不用处理合并了。
我知道这并不能直接回答您的问题。