【发布时间】:2013-11-30 17:33:45
【问题描述】:
有没有办法回滚最后一次提交并将其放入单独的分支以供以后测试?我做了一些我不想完全丢弃的更改,我只想将它们放在不同的分支中以供进一步测试。
谁能帮我解决这个问题?
【问题讨论】:
标签: git git-branch git-commit git-reset
有没有办法回滚最后一次提交并将其放入单独的分支以供以后测试?我做了一些我不想完全丢弃的更改,我只想将它们放在不同的分支中以供进一步测试。
谁能帮我解决这个问题?
【问题讨论】:
标签: git git-branch git-commit git-reset
您可以分两步完成此操作,而无需在分支之间切换。我们开始吧。
从当前分支创建一个新分支,以保留当前状态:
git branch feature_maybe
恢复当前分支的最后一次提交:
git reset --hard HEAD^
【讨论】:
是的,您可以实现这一点 - 从当前分支分支并创建一个新分支以保留提交,检出回原始分支,然后回滚原始分支中的提交。
因此,从您当前的分支(我们称之为current)创建并签出一个新分支separate
git checkout -b separate
这将create a new branch separate 将有新的提交。现在回到原来的分支
git checkout current
在这个分支上,你现在可以rollback the last commit
git reset --hard HEAD~1
如果您稍后想要访问那个较旧的提交,则必须执行 git checkout separate 并且该提交应该在该分支中可用。
【讨论】:
separate 吗?在这种情况下,请执行git push origin separate。这也应该在 github 上创建一个新分支 separate。
是的 - 使用 git checkout -b <new branch name> 签出新分支,使用 git checkout <original branch name> 切换到原始分支,然后执行 git reset --hard HEAD~1 将原始分支移回提交。 (与往常一样,在移动分支时,使用gitk 之类的程序逐步可视化您正在做的事情是最安全的。)
【讨论】: