如果你不小心提交了一些你不应该的东西,并将它推送到 Github,仍然有方法可以删除或修改它。通常,您不想弄乱 Git 的历史记录,但在某些情况下,如果做得正确,它是安全的。
如果可以避免,请不要这样做
从 Git 的历史记录中删除提交通常是一个坏主意。Git 旨在跟踪文件的每个版本,并且总是有删除的替代方法,例如git revert,可以保持历史记录完整无缺。
一旦它在一个远程存储库上,比如 Github,就很难完全摆脱提交。这是因为使用该存储库的任何其他人都将拥有该存储库的自己的本地副本,强行删除提交将使它们不同步。
仍然有一些原因可以这样做——也许你不小心将私有数据提交到了公共存储库,无论你做什么,它仍然会在历史记录中可见。这会给您的同事带来一些问题,但即使在这种情况下,也可以使用强制推动。
在本地修复提交
如果您在本地工作,并且尚未将更改推送到 Github,则可以安全地重置或修改不在远程上的提交。Git 会跟踪您的本地目录、在内部暂存更改并保留 Git 历史记录。这一切都与遥控器保持同步,但仅在运行push/pull. 在你推送之前,Github 不关心你的 repo 的状态。