今晚我们遇到了一个混乱,代码签入到 git(如果推送到主分支,它会自动推送到我们的应用程序),导致我们的网站出现了一些故障。我恢复了 EC2 快照以恢复站点,但现在我需要清理 git 并让我们回到正轨。
看起来我需要找到最后一次成功提交到 master 分支,获取它的 sha1 id 的前 8 个左右的字符,然后运行:
git reset --hard jfe2ldj2
git push origin master -f
一旦我这样做了,从提交“jfe2ldj2”到稍后的主分支上的所有内容都将从 git 中擦除,并且永远无法恢复。我理解正确吗?
此外,这不会影响任何其他分支或提交是否正确?意思是,一旦我运行该命令并将主分支恢复到 6 周前,所有其他分支都将保持最新状态。这意味着如果我有许多发布和功能分支,并且自 6 周前以来它们都有多个提交,那么所有这些分支和提交仍然存在吗?