git – 从一个分支转移到另一个分支

我已经对我的git存储库的主分支进行了一系列更改,并将其推送到上游(尽管我是唯一一个从这些工作中完成的工作)。我想做的是将这些最后几个提交,滚动后退主人在提交之前提交,重新申请提交到开发分支,然后合并回主。

这是我的存储库现在看起来:

a [master] [remotes/origin/master]
|
b
|
c
|
d (merge branch 'develop')
|\
| \
|  e [develop] [remotes/origin/develop]
|  |
q  f
|  |
r  g

这就是我想要的样子:

Z [master] [remotes/origin/master]
|\
| \
|  A
|  |
|  B
|  |
d  C
|\ |
| \|
|  e [develop] [remotes/origin/develop]
|  |
q  f
|  |
r  g

我可以得到一些帮助吗?我认为这是一个rebase的工作,但我不太确定如何使它发生。

这个给你:

# move cba onto e
git branch foo
git rebase --onto <SHA1-e> <SHA1-d> foo

# rewind master to d
git checkout master
git reset --hard <SHA1-d>

# merge
git merge foo

您可能希望选择比foo更具描述性的分支名称,因为它将被记录在Z的合并提交消息中。

http://stackoverflow.com/questions/4121025/moving-commits-from-one-branch-to-another

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:git – 从一个分支转移到另一个分支