我做了一些工作,致力于这项工作并将其推向了原点。现在我意识到我想回到工作之前的点。
我想将我的本地存储库和源存储库恢复到对源的较早提交,并且我不需要保留我在本地或源上所做的任何更改。
我真的很想确定自己没有犯错。有人可以给我一些建议。我是否需要先恢复本地repro,然后再将其推送到原点?
这是我认为我需要做的命令:
git reset --hard HEAD~1
之后是一次提交并推送到原点
但这对我来说有点冒险,所以如果我是正确的话,我想得到一些确认。
谢谢
答案 0 :(得分:1)
让我们假设这样的最近历史,由于提交D和E不好,因此您想返回到提交C。我还将假设这发生在master分支上,但是随时可以适应。
A--B--C--D--E
^
master <<< HEAD
如何找到要返回的“好”提交的引用?
git log --oneline -15
应该足以识别它(存储其哈希并在下一个命令中使用)
现在让我们在本地进行:
git checkout master
git reset --hard C
然后在远端(github)上反映您的新情况
git push --force origin HEAD
最终情况将是
A--B--C D--E (dangling, will be garbage collected later)
^
master <<< HEAD