繁体   English   中英

Git从主创建分支并在顶部变基

[英]Git create branch from master and rebase on top

我有以下存储库

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 还原的,因此它的提交CDEFGH压缩在一起。 (或者I是合并提交, J是还原提交。)

如果你想在没有 I、J、K 和 L 的情况下在自己的分支上提交 C、D、E、F、G、H,你应该这样做:

git checkout H
git checkout -b new-branch

在新分支上添加更多提交后,您的历史记录将如下所示:

master:    A-B-C-D-E-F-G-H-I-J-K-L
                          \
new-branch:                M-N-O

一旦你在 new-branch some 上工作并有一些提交,你可以使用 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

尝试直接从 master 挑选一系列所需的提交。

git cherry-pick C..H

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM