它类似于Make the current git branch a master branch但有点不同。
我已经在master中做了一些提交,但是现在它们不会被使用,我希望将来保留它们,将它变成一个新的分支,我想得到一个旧的提交并合并一些功能(如cherry-pick) )然后使其成为当前的主人。
.----------E (no branch)
/ /
----A---B---C---D (master)
版本D
是当前版主,我希望E
成为一个版本。我这样做:
git checkout A
git merge --no-commit --no-ff D
# do some changes here
git commit -m 'message for E'
这会生成no branch
提交,我想知道如何将其转换为主要内容并将B
,C
和D
转为新分支。
上面答案的不同之处在于我不希望E
成为新分支,我希望将其命名为master,并将其他分支更改为新分支。
答案 0 :(得分:1)
就像您关联的帖子一样,只有在您没有push
编辑master
的情况下才能执行此操作。
首先,使用master
从git branch new-branch master
创建一个新分支。你最终应该
.----------E (no branch)
/ /
----A---B---C---D (master) (new-branch)
现在,使用
将主人移至E
git checkout master
git reset --hard E
您的最终网络应该类似于
.----------E (master)
/ /
----A---B---C---D (new-branch)
答案 1 :(得分:0)
此命令将创建指向D
的新分支。
git branch new-branch D
这会将当前分支提示设置为提交A
,而所有更改都将保留在原位:
git reset --soft A
# do some changes here
git commit -m 'message for E'
这些命令不会像您的示例中那样创建合并提交,但我猜您不需要它。