Git 如何将分支的尖端向后移动3次?

Git 如何将分支的尖端向后移动3次?,git,Git,我想将我的工作分成两个分支,因此我想为当前提示分配一个新的分支名称,并将当前分支名称向后移动3次。3个新提交尚未推送 我目前有: branch1 F - G - H / origin/branch1 C - D - E / master A - B 我希望: branch2 F - G -

我想将我的工作分成两个分支,因此我想为当前提示分配一个新的分支名称,并将当前分支名称向后移动3次。3个新提交尚未推送

我目前有:

branch1                     F - G - H  
                           /
origin/branch1    C - D - E
                 /
master      A - B 
我希望:

branch2                              F - G - H  
                                    /
branch1, origin/branch1    C - D - E
                          /
master               A - B 
我已经创建了branch2:


你能告诉我下一步怎么做,在不移动branch2的情况下收回branch1几次提交吗?

Branch只不过是一个指向提交的指针,因此你可以自由地将branch1指针移动到任何其他提交

这应该行得通

git checkout branch1
git reset --hard origin/branch1
或者回到过去:

git checkout branch1
git reset --hard branch1~3

分支只不过是指向提交的指针,因此您可以将branch1指针自由移动到任何其他提交

这应该行得通

git checkout branch1
git reset --hard origin/branch1
或者回到过去:

git checkout branch1
git reset --hard branch1~3
从这个来源:

让我们从Git命令reset开始。实际上,您可以将其视为回滚—它将本地环境指向上一次提交。本地环境是指您的本地存储库、临时区域和工作目录

$ git log --oneline
b764644 File with three lines
7c709f0 File with two lines
9ef9173 File with one line
重置命令:

$ git reset 9ef9173 (using an absolute commit SHA1 value 9ef9173)

然后您可以再次检查日志

$ git log --oneline
9ef9173 File with one line
在您的情况下,您可以使用origin/branch1作为参考,您可以执行以下操作:

git checkout branch1
git reset --hard origin/branch1
总之,在分支中有不同的时间回溯方式,即使使用非常规方式,如:

git checkout -b 9ef9173 (using an absolute commit SHA1 value 9ef9173)
这将创建一个新的分支

git checkout branch1
git merge 9ef9173
从这个来源:

让我们从Git命令reset开始。实际上,您可以将其视为回滚—它将本地环境指向上一次提交。本地环境是指您的本地存储库、临时区域和工作目录

$ git log --oneline
b764644 File with three lines
7c709f0 File with two lines
9ef9173 File with one line
重置命令:

$ git reset 9ef9173 (using an absolute commit SHA1 value 9ef9173)

然后您可以再次检查日志

$ git log --oneline
9ef9173 File with one line
在您的情况下,您可以使用origin/branch1作为参考,您可以执行以下操作:

git checkout branch1
git reset --hard origin/branch1
总之,在分支中有不同的时间回溯方式,即使使用非常规方式,如:

git checkout -b 9ef9173 (using an absolute commit SHA1 value 9ef9173)
这将创建一个新的分支

git checkout branch1
git merge 9ef9173

@利亚姆是的,谢谢。@利亚姆是的,谢谢。