GitHub - 删除推送的提交而不影响本地存储库

标签 git github

自从我做了一些我希望保留的提交后,从 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/

相关文章:

git - 修复 fork 中损坏的主分支

node.js - 如何增强第三方 npm 模块以在处理我的应用程序时在 github 上提交 PR

git - 恢复分支上未提交的更改

github - 如何在 github 上显示 .ipynb 文件?

git - 如何找到大文件中 merge 冲突的位置?

git/bitbucket错误: Unable to make Pull requests.但可以克隆

移动文件的 Git merge

GitHub API - 写入 repo

github - 仅在新标签上触发 Github Action?

github - 当 Windows 与 ssh 密码一起启动时启动 ssh-agent