2

需要一个解释。所以我在功能分支上工作(让我们称之为feature/feature1),提交并推送到远程。

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

然后我开始开发一个新功能,但我没有去开发、拉取和创建新功能分支,而是继续在feature/feature1分支上工作。

我不想放弃更改,我该如何创建新分支并将所有新更改从feature/feature1分支移动到新创建的分支?谢谢。

4

2 回答 2

1

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

以下是如何将基于一个分支的主题分支移植到另一个分支,假装您使用 rebase --onto 从后一个分支分叉了主题分支。...

您的命令可能看起来像这样:

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 
于 2013-02-07T13:55:09.720 回答
0

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

于 2013-02-07T13:56:24.930 回答