如何在错误的 PR 后保持 upstream 和 fork 同步

How to keep upstream and fork synced after erroneous PR

我已经分叉了一个存储库,并且正在做一些贡献。我做了一个错误的 PR,关闭它后我无法同时获得两个回购:upstreamfork。我已经阅读了如何同步 fork here 但似乎对我不起作用,因为在 运行 每个命令并关闭 PR 之后我仍然没有得到最新的代码。见下图:

我该如何解决这个问题?在没有 PR 和我的更改的情况下,如何将分叉重置为原始状态? (是的,我可以松开它们,因为它只有几行,我可以重新写它们以防万一)

您不应将拉取请求的内容提交给分支的主控。相反,为每个拉取请求创建一个新分支,并且不要向 master 添加任何内容而不是原始项目的提交。

TL;DR: 再次删除你的分叉

手动方式:

  • 去你的叉子的本地结帐
  • git checkout master 万一你在别的地方
  • 使用gitkgit log查找原始仓库的最后一次提交id,我们称之为e5fa44f2b31c1fb553b6021e7360d07d5d91ff5e
  • git reset --hard e5fa44f2b31 这将剪切并删除 e5fa44f2b31
  • 之后的所有内容
  • git push --force 这将切割推到 Github。你需要 --force 因为你在操纵历史。不要对其他人依赖的分支这样做。
  • 现在您应该只在您的复刻中提交上游存储库(再次参见 gitk 和 Github)
  • Locally add a second remote called "upstream"
  • Get the latest changes from upstream into your master
  • 永远不要再将自定义更改提交给 fork 的 master ;)