我分叉了一个存储库,然后做了一些更改,看起来我已经搞砸了一切。
我希望从头开始,使用当前的上游/主控作为我工作的基础。
我应该重新设置我的存储库还是完全删除它?
最简单的解决方案是(使用 'upstream
'作为引用原始存储库分叉的远程名称):
git remote add upstream /url/to/original/repo
git fetch upstream
git checkout master
git reset --hard upstream/master
git push origin master --force
(类似于这个GitHub 页面,“如果我处境不好我该怎么办?”部分)
请注意,您可能会丢失在master
branch(都是本地的,因为reset --hard
,而在远程端,由于push --force
).
另一种选择是,如果您想保留您的提交master
,在当前的基础上重播这些提交upstream/master
.
将复位部分替换为git rebase upstream/master
。然后你仍然需要用力推动。
也可以看看 ”如果我的处境不好,我该怎么办?"
更完整的解决方案,备份您当前的工作(以防万一)在“清理 git master 分支并将一些提交移至新分支".
也可以看看 ”将新更新从原始 GitHub 存储库提取到分叉的 GitHub 存储库“用于说明什么”upstream
" is.
注意:最近的 GitHub 存储库确实保护master branch反对push --force
.
所以你必须取消保护master
首先(见下图),然后强推后重新保护).
注意:在 GitHub 上具体有现在(2019 年 2 月)用于删除已合并到上游的拉取请求的分叉存储库的快捷方式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)