Dou*_*oug 18 git merge branch rebase
我已经对我的git存储库的主分支进行了一系列更改,并将其推送到上游(尽管我是唯一一个使用它们的人.)我想要做的是将这些最后几个提交关闭,roll在master提交之前,将提交重新应用到develop分支,然后合并回master.
这是我的存储库现在的样子:
a [master] [remotes/origin/master]
|
b
|
c
|
d (merge branch 'develop')
|\
| \
| e [develop] [remotes/origin/develop]
| |
q f
| |
r g
Run Code Online (Sandbox Code Playgroud)
这就是我想要的样子:
Z [master] [remotes/origin/master]
|\
| \
| A
| |
| B
| |
d C
|\ |
| \|
| e [develop] [remotes/origin/develop]
| |
q f
| |
r g
Run Code Online (Sandbox Code Playgroud)
我可以得到一些帮助吗?我认为这是一项改革工作,但我不太确定如何实现这一目标.
Cas*_*bel 27
这个给你:
# 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
Run Code Online (Sandbox Code Playgroud)
您可能希望选择比foo更具描述性的分支名称,因为它将记录在Z的合并提交消息中.