我有这样的事情:
/-E-F - branch1
A-B-C - master
\-X - branch2
在我改为B并在主分支上更改后,我得到了类似的结果:
/-E-F - branch
A-B-C
\ \-X - branch2
\-B*-C* - master
之后,我尝试在“分支”上以相同的方式重新编辑和编辑B,我得到了类似的内容:
/B**-C**-E-F - branch
A-B-C
\ \-X - branch2
\-B*-C* - master
我的目的是为所有分支编辑B并得到类似的东西:
/-E-F - branch1
A-B*-C - master
\-X - branch2
我该如何解决?
感谢您的帮助。
答案 0 :(得分:1)
假设你可以回到起始图(看看使用reflog进行提交恢复),看起来更容易让更改为master并合并它(使用--no-ff)进入branch1和branch2:
$ git checkout C
# make modifications
$ git commit
$ git checkout branch1
$ git merge --no-ff master
$ git checkout branch2
$ git merge --no-ff master
/-E-F-G - branch1
/ /
A-B-C-----D - master
\ \
\-X---Y - branch2
否则:
/-E-F - branch1
A-B-C - master
\-X - branch2
$ git checkout B
# make your modifications
$ git commit
/-E-F - branch1
A-B-C - master
\ \-X - branch2
\-B*
$ git rebase --onto B* B branch1
/-E-F
A-B-C - master
\ \-X - branch2
\-B*-C*-E*-F* - branch1
$ git rebase --onto C* master branch2
/-E-F
A-B-C - master
\ \-X
\-B*-C*-E*-F* - branch1
\-X* - branch2
$ git checkout master
$ git reset --hard C*
/-E-F
A-B-C
\ \-X
\ /-E*-F* - branch1
\-B*-C* - master
\-X* - branch2