从原始的GitHub存储库中取出新的更新到分叉的GitHub存储库
我在GitHub上分发了某人的存储库,并想用我们原来的存储库中提交的更新和更新来更新我的版本。 这些是在我把我的副本分开之后做出的。
我怎样才能引入原来所做的更改并将它们合并到我的存储库中?
您必须将原始存储库(您分叉的那个)添加为远程存储库。
从GitHub fork手册页 :
一旦克隆完成,你的repo将有一个名为“
origin
”的远程指向你在GitHub上的fork。
不要让这个名字让你感到困惑,这并不意味着你所分出的原始回购。 为了帮助您跟踪回购,我们将添加另一个名为“upstream”的远程设备:
$ cd github-services $ git remote add upstream git://github.com/pjhyett/github-services.git $ git fetch upstream # then: (like "git pull" which is fetch + merge) $ git merge upstream/master master # or, better, replay your local work on top of the fetched branch # like a "git pull --rebase" $ git rebase upstream/master
你也有一个可以促进这些GitHub操作的rubygem 。
另见“ Git fork是git clone? ”。
除了VonC的回答之外,你还可以根据自己的喜好调整它。
从远程分支中获取后,仍然需要合并提交。 我会replace
$ git fetch upstream
同
$ git pull upstream master
因为git pull本质上是git fetch + git merge。
这个video展示了如何直接从GitHub更新一个分支
脚步:
- 在GitHub上打开你的fork。
- 点击
Pull Requests
。 - 点击
New Pull Request
。 默认情况下,GitHub会将原始文件与您的分叉进行比较,如果您没有做任何更改,则不应该有任何比较。 - 点击
switching the base
。 现在GitHub会比较你的分叉和原来的,你应该看到所有的最新变化。 - 点击为这个比较
Create a pull request
,并为您的拉取请求分配一个可预测的名称(例如,从原来的更新)。 - 点击
Create pull request
。 - 向下滚动并单击
Merge pull request
,最后Confirm
合并。 如果您的分支没有任何更改,您将能够自动合并它。
使用:
git remote add upstream ORIGINAL_REPOSITORY_URL
这会将您的上游设置为您分配的存储库。 然后这样做:
git fetch upstream
这将从原始存储库中提取所有分支,包括master。
将这些数据合并到本地主分支中:
git merge upstream/master
将更改推送到您的分叉存储库,即源:
git push origin/master
瞧! 您已完成同步原始存储库。
如果您使用的是GitHub桌面应用程序,右上angular有一个同步button。 点击它,然后Update from <original repo>
左上angular的Update from <original repo>
。
如果没有更改要同步,这将是无效的。
以下是一些简单的截图