【发布时间】:2016-03-08 12:35:03
【问题描述】:
我在 git 中有一个私人分支,我已经有一段时间没有碰过它了。我想在master 之上重新定义它,所以我:
git checkout master
git pull
git checkout my-branch
git rebase master
First, rewinding head to replay your work on top of it...
Applying: a bunch of stuff
Applying: more stuff
Applying: and so on
CONFLICT (content): Merge conflict in src/foo.c
error: Failed to merge in the changes.
哦不,我不能直接变基到HEAD!
git rebase --abort # sigh
此时我通常会尝试使用git rebase SHA1、git rebase SHA2(其中 SHA1、SHA2 等在 master),直到我找到它成功变基的最近点。
我挑选候选rebase点的常用技巧是在每次合并到master之后立即尝试。
有没有好办法让这个过程自动化?
【问题讨论】:
-
基于 SHA1/2 的 rebase 有什么好处?您最终将不得不基于 master 进行 rebase,并且您将遇到相同的冲突。
-
解决冲突和
git rebase --continue。 -
如果变基中有有个成功的合并,它们会被应用,并且我在分支上的提交(和潜在的冲突)更少。