如何将我的十次提交从master移动到git中的一个新分支?

如何将我的十次提交从master移动到git中的一个新分支?,git,branching-and-merging,Git,Branching And Merging,我需要做的是: 我有十项任务要交给师父。我需要将这些承诺转移到新的分支机构。我一直在定期拉,但我还没有推动我的工作。我怎样才能把我的十个承诺变成一个新的分支,然后我可以推动它 我试着按照这些步骤去做,但都不起作用。具体地说,当我进行重新基化时,我最终得到的结果是在master上提交,而在我的新分支上没有提交。从未将任何提交移动到新分支,并且根据问题中提供的步骤,我不认为这是可能的。根据我的理解,这就是您所拥有的: * commit 10 (master) | * commit 9 | ... |

我需要做的是: 我有十项任务要交给师父。我需要将这些承诺转移到新的分支机构。我一直在定期拉,但我还没有推动我的工作。我怎样才能把我的十个承诺变成一个新的分支,然后我可以推动它


我试着按照这些步骤去做,但都不起作用。具体地说,当我进行重新基化时,我最终得到的结果是在master上提交,而在我的新分支上没有提交。从未将任何提交移动到新分支,并且根据问题中提供的步骤,我不认为这是可能的。

根据我的理解,这就是您所拥有的:

* commit 10 (master)
|
* commit 9
|
...
|              * (origin/master)
* commit 1     |
|.------------^
*
我想你想要的是在一个新的分支上有1-10个提交

要执行此操作,只需使用分支名称标记分支,然后将主机重置为origin/master所具有的名称

因此:

这将最终导致:

* commit 11 (feature) merge commit
|^------------.
* commit 10    |
|              ...
...
|              * (master, origin/master)
* commit 1     |
|.------------^
*

这就是您想要做的吗?

一个选择就是将您的工作推到一个新分支:

git push HEAD:branchname
这将在服务器上创建一个新的分支
branchname
,其中包含您当前的工作。-在这种情况下,它可能会变得混乱,因为您的工作仍然在本地的master上

要正确执行此操作,您只需将本地主机重置为远程版本:

git reset --hard @{u}
请注意,这将丢弃所有未承诺的机会


要在branchname上工作,您只需执行git checkout branchname

即可重命名您的分支并将其推送:

git branch -m branchname
git push -u branchname

此处
-u
对于更新跟踪分支非常重要

这让我想到了最终的解决方案,那就是:1)签出主机2)git日志以获取最新的提交id 3)重新基4)重置硬头5)签出最新的提交(转到分离的头状态)6)创建一个新分支,并将提交自动放入该新分支中
git branch -m branchname
git push -u branchname