如何将一个分支的末端回退3个提交?
如何将一个分支的末端回退3个提交?
这个问题已经有答案了:
我想将我的工作拆分为两个分支, 所以我想给当前最新的提交分配一个新的分支名称, 并将当前的分支名称退回 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
:
git checkout -b cleanup_exchanges
请问下一步该怎么做, 将branch1
退回几个提交, 而不移动branch2
?
admin 更改状态以发布 2023年5月24日
从这个来源:https://opensource.com/article/18/6/git-reset-revert-rebase-commands
让我们从Git命令重置开始。实际上,您可以将其视为“回滚”--它会将您的本地环境指向以前的提交。通过“本地环境”,我们指的是您的本地存储库,暂存区和工作目录。
$ 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 reset current~2 (using a relative value -2 before the "current" tag)
然后您可以再次检查日志
$ 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