18

私は自分の 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

これについて何か助けを得ることができますか?これはリベースの仕事だと思っていますが、それを実現する方法がよくわかりません。

4

1 に答える 1

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

Z のマージ コミット メッセージに記録されるため、foo よりもわかりやすいブランチ名を選択することをお勧めします。

于 2010-11-08T03:35:30.343 に答える