2013-02-07 80 views
2

需要说明。所以我在功能分支(让我们称之为feature/feature1),提交并推送到远程。分支模型:如何将分支完成的更改移至另一分支

git commit -m "commit feature1" 
git push origin feature/feature1 

然后,我开始一个新功能,但不是检查出来的发展,拉动和创造新的特性分支,我继续努力feature/feature1分支。

我不想放弃更改,我如何才能创建新分支并将所有新更改从feature/feature1分支移至新创建的分支?感谢名单。

回答

1

您可以使用rebase--onto参数将一些更改从一个分支移动到另一个分支。这里有一个如何做到这一点的文档中的一个例子,该部分与

这里是你将如何基于一个分支移植到另外一个话题分支开始,假装你从后者分叉的特性分支分支,使用rebase - 去。 ...

你的命令将可能看起来是这样的:

git branch feature/feature2 
git reset --hard <sha1 of last commit of feature 1> 
git rebase --onto <where you want branch to start> feature/feature1 feature/feature2 
+0

嗨,'git分支-M feature/feature2'已经删除了'feature/feature1'分支!这不是我所期待的。 – Malloc

+0

@Malloc它没有删除它,它重命名它。我添加了解释发生了什么。我也意识到wRAR在洗牌分支的方法可能更直接,所以我修改了我的原始答案以包含它。 – R0MANARMY

0

如果你想包含当前一个新的分支提交,你应该做的git branch newbranchname。这将创建一个新的分支,但不会改变旧分支。如果你想从旧分支中删除新的提交,如果该分支尚未发布,你可以检出它,并做git reset --hard lastcommitid

相关问题