如何在错误的 PR 后保持 upstream 和 fork 同步
How to keep upstream and fork synced after erroneous PR
我已经分叉了一个存储库,并且正在做一些贡献。我做了一个错误的 PR,关闭它后我无法同时获得两个回购:upstream
和 fork
。我已经阅读了如何同步 fork here 但似乎对我不起作用,因为在 运行 每个命令并关闭 PR 之后我仍然没有得到最新的代码。见下图:
我该如何解决这个问题?在没有 PR 和我的更改的情况下,如何将分叉重置为原始状态? (是的,我可以松开它们,因为它只有几行,我可以重新写它们以防万一)
您不应将拉取请求的内容提交给分支的主控。相反,为每个拉取请求创建一个新分支,并且不要向 master 添加任何内容而不是原始项目的提交。
TL;DR: 再次删除你的分叉
手动方式:
- 去你的叉子的本地结帐
git checkout master
万一你在别的地方
- 使用
gitk
或git 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 ;)
我已经分叉了一个存储库,并且正在做一些贡献。我做了一个错误的 PR,关闭它后我无法同时获得两个回购:upstream
和 fork
。我已经阅读了如何同步 fork here 但似乎对我不起作用,因为在 运行 每个命令并关闭 PR 之后我仍然没有得到最新的代码。见下图:
我该如何解决这个问题?在没有 PR 和我的更改的情况下,如何将分叉重置为原始状态? (是的,我可以松开它们,因为它只有几行,我可以重新写它们以防万一)
您不应将拉取请求的内容提交给分支的主控。相反,为每个拉取请求创建一个新分支,并且不要向 master 添加任何内容而不是原始项目的提交。
TL;DR: 再次删除你的分叉
手动方式:
- 去你的叉子的本地结帐
git checkout master
万一你在别的地方- 使用
gitk
或git 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 ;)