今晚我们遇到了一个麻烦,代码 checkin 了 git(如果推送到 master 分支,它会自动推送到我们的应用程序)导致我们的网站出现了一点故障。我恢复了 EC2 快照以恢复站点,但现在我需要清理 git 并让我们回到正轨。
看来我需要找到对 master 分支的最后一次成功提交,获取它的 sha1 id 的前 8 个左右的字符,然后运行:
git reset --hard jfe2ldj2
git push origin master -f
一旦我这样做了,master 分支上来自提交“jfe2ldj2”的所有内容都将从 git 中删除并且永远无法恢复。我的理解正确吗?
此外,这不会影响任何其他分支或提交,对吗?意思是,一旦我运行该命令并将 master 分支恢复到 6 周前,所有其他分支将保持最新状态。这意味着,如果我有许多发布和功能分支,并且自 6 周前以来它们都有多个提交,那么所有这些分支和提交仍将存在吗?
最佳答案
Once I do that, everything on the master branch from commit
jfe2ldj2
an later will be wiped from git and can never be recovered.
如前所述well covered ,如果更改已提交,即使在 reset --hard
Also, this will not effect any other branches or commits correct?
是的,想想一棵树,砍掉一根 Twig ,其他 Twig 完好无损。
关于git reset --hard,它将如何影响我的提交和分支?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15874829/