自从我做了一些我希望保留的提交后,从 GitHub 删除提交而不影响我的本地存储库的最佳方法是什么?
Github 存储库有两个错误的提交,我希望将其删除,同时将提交保留在我的本地存储库上。
最佳答案
假设当前存储库状态是这样的:
server: A---B---C---D
^master
workstation: A---B---C---D
^HEAD
^master
^origin/master
期望的状态是这样的:
server: A---B
^master
workstation: A---B---C---D
^HEAD
^master
^origin/master
那么你可以做的是:
$ git push --force origin bbbbbbbb:master
其中 bbbbbbbb
是 B 的提交哈希。
注释:
- 与所有
--force
一样,要小心。你可能会让自己陷入一个难以摆脱的境地。 - 确保所有团队成员都知道您在做什么。如果他们在您推送后没有正确更新自己的存储库,则可能会无意中将 C 和 D 推送回存储库。
- 如果任何其他标签/分支指向提交 C 和 D,它们仍然可以通过那里进行访问。
- 提交 C 和 D,其中的所有更改可能不会立即删除。它们将在未定义的时间在垃圾收集过程中被删除。
关于GitHub - 删除推送的提交而不影响本地存储库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38464855/