几个月前,我分叉了一个存储库,进行了更改并提交了一个pull请求,最终被接受为master.从那以后,我的硬盘上的代码一直没有动过.现在,我想再次为同一个存储库做贡献.我的fork中的代码与master不同步,因为它的更改从未被提取到master中,并且因为master已经继续运行.我应该删除我的分叉并重新编译,还是有更好的方法?
我以为这可能是之前被问过的.尽管搜索,我发现拉从原来的GitHub库的新更新到分叉的GitHub库,但在这一问题的StackOverflower要保持局部的变化,而我想放弃所有的局部变化,并采取目前无论是在主.
如果您的分叉中没有任何内容可以保留,则删除和重新分叉肯定是一种选择.如果您不想这样做,还有很多其他方法可以更新您的回购.
我可能首先将上游回购添加为远程,如果你还没有.这样做:
git remote add upstream <clone-url>
Run Code Online (Sandbox Code Playgroud)
然后,从上游远程获取所有更改:
git fetch upstream
Run Code Online (Sandbox Code Playgroud)
现在,您可以使用新获取的提交执行任何操作.例如,要将本地主分支重置为上游存储库中的分支,请运行以下命令:
git checkout master
git reset --hard upstream/master
Run Code Online (Sandbox Code Playgroud)
您可以将此更改推送到GitHub fork,如下所示:
git push --force origin master
Run Code Online (Sandbox Code Playgroud)
有关使用遥控器的更多信息,我建议本章使用Pro Git书中的遥控器:2.5 Git Basics - 使用遥控器