Git更改主机原点/ HEAD和原点/主机

Rob*_*Rob 1 git github tortoisegit git-branch

在我的Git存储库中,我有一组常规的提交。但是,最后四次提交只是一些原型代码,实际上应该是一个分支。我该如何返回到先前的提交,并将原型代码放到它自己的分支中。

在TortoiseGit中,我看到的是这样的东西。

A -- B -- C -- D -- E -- F
                         |
                       master
                     origin/master
                     origin/HEAD
Run Code Online (Sandbox Code Playgroud)

我想要的是:

A -- B -- C -- D -- E -- F
          |              |
        master       proto_branch
     origin/master
     origin/HEAD
Run Code Online (Sandbox Code Playgroud)

然后,当我处理所有的C分支时,我们可以proto_branch稍后将其合并到主流中。这样,如果我继续提交,它将看起来像这样。

A -- B -- C -- D -- E -- F
          |              |
          G              I
          |              |
          H          proto_branch
          |
        master
     origin/master
     origin/HEAD
Run Code Online (Sandbox Code Playgroud)

Roh*_*ain 5

首先proto_branch从您当前的HEAD 创建一个新分支(您应该在主节点上):

git branch proto_branch
Run Code Online (Sandbox Code Playgroud)

现在你都masterproto_branchF

现在要master提交C,做一个reset --hard。同样,您应该在master分支上。请注意,在进行硬重置之前,您不应进行任何本地修改。如果存在,请先将其存放。

git reset --hard C
Run Code Online (Sandbox Code Playgroud)

然后转到origin/master该提交,请执行以下操作force-push

git push -f origin master
Run Code Online (Sandbox Code Playgroud)