我在GitHub上分叉了某人的存储库,并希望使用原始存储库中的提交和更新来更新我的版本。这些都是在我把我的副本分叉后制作的。
我如何将在源代码中所做的更改引入并将其合并到我的存储库中?
我在GitHub上分叉了某人的存储库,并希望使用原始存储库中的提交和更新来更新我的版本。这些都是在我把我的副本分叉后制作的。
我如何将在源代码中所做的更改引入并将其合并到我的存储库中?
当前回答
要自动将分叉存储库与父存储库同步,可以使用GitHub上的Pull App。
有关详细信息,请参阅自述文件。
对于希望保留对分叉存储库所做的更改的高级设置,请参阅我在这里对类似问题的回答。
其他回答
如果你想不使用cli,可以在Github网站上完全完成。
转到您的fork存储库。单击New pull request。确保将fork设置为基础存储库,将原始(上游)存储库设置为头部存储库。通常,您只需要同步主分支。创建新的拉取请求。选择合并按钮右侧的箭头,并确保选择重新基准而不是合并。然后单击按钮。这样,它就不会产生不必要的合并提交。完成。
如果没有什么可失去的,你也可以删除你的叉,只需转到设置。。。转到下面的危险区域部分,然后单击删除存储库。之后,它将要求您输入存储库名称和密码。之后,您只需再次分叉原稿。
如果您使用的是GitHub桌面应用程序,右上角有一个同步按钮。单击它,然后从左上角附近的<original repo>更新。
如果没有要同步的更改,则将处于非活动状态。
下面是一些屏幕截图,让这变得简单。
Use:
git remote add upstream ORIGINAL_REPOSITORY_URL
这将将您的上游设置为分叉的存储库。然后执行以下操作:
git fetch upstream
这将从原始存储库中获取包括master在内的所有分支。
将此数据合并到本地主分支中:
git merge upstream/master
将更改推送到分叉存储库,即推送到源:
git push origin master
瞧!您已经完成了原始存储库的同步。
您必须将原始存储库(您分叉的存储库)添加为远程存储库。
从GitHub关于分叉存储库的文档中:
克隆完成后,你的repo将有一个名为“origin”的远程文件,指向GitHub上的分叉。不要让这个名字迷惑你,这并不是指你分叉的原始回购。为了帮助您跟踪该回购,我们将添加另一个名为“上游”的远程:$cd项目名称$git远程添加上游https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git$git获取上游#然后:(如“gitpull”,即fetch+merge)$git合并上游/主控#或者,更好的是,在获取的分支上回放本地工作#就像“git pull-rebase”$git上游重基/主
还有一个命令行工具(gh)可以方便上面的操作。
以下是它的工作原理:
另请参见“Git分叉实际上是Git克隆吗?”。