我有以下存储库
A-B-C-D-E-F-G-H-I-J-K-L
我想做
A-B-C-D-E-F-G-H-I-J-K-L
\
C-D-E-F-G-H
并将新分支移至master上
A-B-C-D-E-F-G-H-I-J-K-L
\
C-D-E-F-G-H
所以我做到了:
checkout B
checkout -b new-branch
cherry-pick C D E F G H
// so far it what i want
rebase new-branch master
// now I'm back in master like I did nothing
不确定如何实现。
//编辑
提交I
是从github UI恢复的,因此它的提交C-D-E-F-G-H
被压缩在一起。 (或者I
是合并提交,而J
是还原提交。)
答案 0 :(得分:0)
如果要在没有I,J,K和L的自己的分支上提交C,D,E,F,G,H,则应执行以下操作:
git checkout H
git checkout -b new-branch
在new-branch上添加了更多提交后,您的历史记录如下:
master: A-B-C-D-E-F-G-H-I-J-K-L
\
new-branch: M-N-O
一旦您在新分支上进行了一些工作并提交了一些提交,就可以使用rebase在master之上播放不同的提交,如下所示:
git checkout new-branch
git rebase master
这会使您的历史记录如下:
master: A-B-C-D-E-F-G-H-I-J-K-L
\
new-branch: M-N-O
答案 1 :(得分:0)
尝试直接从master那里挑选一系列所需的提交。
git cherry-pick C..H