压缩线性提交历史时发生冲突

时间:2010-07-30 15:29:35

标签: git git-rebase

当尝试压缩/修复线性分支时,我仍然需要进行手动合并? repo已从Subversion转换而来。每个冲突都是“自动挑选失败”或“由于空提交消息而中止提交”。后者我能理解,但--fixup-empty或其他东西会有用。

典型输出:

user@machine:/path (master|REBASE-i)$ git add * && git rebase --continue 
[detached HEAD c536940] fixup!
 Author: John Doe <John.doe@example.com>
 2 files changed, 57 insertions(+), 4 deletions(-)
Automatic cherry-pick failed.  After resolving the conflicts,
mark the corrected paths with 'git add <paths>', and
run 'git rebase --continue'
Could not apply 8854a54... >6d5f180 foo
user@machine:/path (master|REBASE-i)$ git st
# Not currently on any branch.
# Unmerged paths:
#   (use "git reset HEAD <file>..." to unstage)
#   (use "git add/rm <file>..." as appropriate to mark resolution)
#
#   both modified:      filename.ics
#
no changes added to commit (use "git add" and/or "git commit -a")

2 个答案:

答案 0 :(得分:2)

这是我建议您实现某种--fixup-empty功能的想法:

git filter-branch --msg-filter "sed 's/^$/Unknown/'"

这将使用“未知”替换空提交消息,如果您想在使用git-svn转换具有一些空提交消息的Subversion存储库之后执行rebase特别有用,但是因为它失败了“由于空提交消息而中止提交“。

答案 1 :(得分:2)

这些工作:

git mergetool
git rebase --continue