假设我的提交历史记录如下:
A <- B <- C
我目前正在使用C.我讨厌我的提交B和C,我想回到A,干净的升级而且没有变化..我想要A的状态。我怎样才能最有效率地做到这一点办法。我目前正在这样做:
git revert --no-commit B
git revert --no-commit A
git checkout .
这也使得没有恢复提交/没有新提交显示我的恢复。说我想要这个。我该怎么办?
有更好的方法吗?
答案 0 :(得分:1)
git reset --hard A
这将带您回到修订版A,它非常接近于说&#34; b和C没有发生&#34;。此外,当前分支将开始指向A,因此请小心使用。
如果你想要的是一个跟随C的新版本D(A&lt; -B&lt; -C&lt; -D),以便它具有与A相同的内容,那么你可以试试这个:
git checkout A -- . # take back content of the whole project to how A was
git commit -m "Going back to revision A"
如果您想使用不会创建提交的还原来执行此操作:
git revert --no-commit A..C
git commit -m "going back to A"
或者:
git revert --no-edit A..C
git reset --soft HEAD~2 # Moving branch pointer to C keeping everything else as-is
git commit -m "going back to A"
答案 1 :(得分:0)
返回提交A,按照以下命令执行:
git reset --hard A
如果您在本地仍有一些未跟踪的文件,则可以在命令下运行:
git clean -f -d
但是如果您的分支也被其他人使用,那么最好的解决方案是仅使用revert命令来避免每个人的冲突。