今晚我们遇到了麻烦,代码被检入git(如果被推送到master分支,它将自动推送到我们的应用程序),这导致我们的站点崩溃了一段时间。我恢复了EC2快照以恢复站点,但是现在我需要清理git并使我们回到正轨。
看来我需要找到对master分支的最后一次成功提交,获取其sha1 id的前8个左右字符,然后运行以下命令:
git reset --hard jfe2ldj2
git push origin master -f
一旦执行完此操作,以后提交“jfe2ldj2”的master分支上的所有内容都将从git中清除,并且永远无法恢复。我理解正确吗?
另外,这不会影响任何其他分支或正确执行吗?意思是,一旦我运行该命令并将master分支恢复到6周前,其他所有分支将保持当前状态。就是说,如果我有多个发行版和功能分支,并且自6周前以来它们都具有多个提交,那么所有这些分支和提交仍会存在吗?
最佳答案
就像well covered一样,如果提交了更改,即使在reset --hard
之后仍可以恢复它们
是的,想想一棵树,砍掉一个 Twig ,剩下的则完好无损。
关于git - git reset --hard,它将如何影响我的提交和分支?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/15874829/