Git更改主原点/磁头和原点/主原点

Git更改主原点/磁头和原点/主原点,git,github,git-branch,tortoisegit,Git,Github,Git Branch,Tortoisegit,在我的Git回购中,我有一组定期提交。然而,最后四次提交只是一些原型代码,实际上应该是一个分支。我如何回到以前的提交并将原型代码放到它自己的分支上 在《陆龟集》中,我在头部看到类似的东西 A -- B -- C -- D -- E -- F | master origin/master origin/HEAD 我想要

在我的Git回购中,我有一组定期提交。然而,最后四次提交只是一些原型代码,实际上应该是一个分支。我如何回到以前的提交并将原型代码放到它自己的分支上

在《陆龟集》中,我在头部看到类似的东西

A -- B -- C -- D -- E -- F
                         |
                       master
                     origin/master
                     origin/HEAD
我想要的是:

A -- B -- C -- D -- E -- F
          |              |
        master       proto_branch
     origin/master
     origin/HEAD
然后,当我处理掉C分支时,它就是所有的头,我们可以稍后将
proto_分支
合并到主流中。所以如果我继续犯下这样的错误

A -- B -- C -- D -- E -- F
          |              |
          G              I
          |              |
          H          proto_branch
          |
        master
     origin/master
     origin/HEAD

首先从您当前的主管处创建一个新的分支机构
proto_branch
(您应该是master):

现在,您在
F
上同时拥有
master
proto_分支

现在要移动
master
以提交
C
,请执行
重置--hard
。同样,您应该在
master
分支上。请注意,在执行硬重置之前,不应进行任何本地修改。如果有,先把它们藏起来

git reset --hard C
然后要将
origin/master
移动到此提交,请执行
强制推送

git push -f origin master

@0x499602D2:是。这将使工作目录保持不变(避免了
git隐藏
的需要,但也会使您处于一种特殊的情况:您在分支主目录上,但设置时就像在分支
proto_分支
上一样)。如果你想这样做,最好从git checkout-b proto_branch开始,这是第一步。它工作得很好,救了我的命。谢谢
git push -f origin master