如何将我的十次提交从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