从原始的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更新一个分支

脚步:

  1. 在GitHub上打开你的fork。
  2. 点击Pull Requests
  3. 点击New Pull Request 。 默认情况下,GitHub会将原始文件与您的分叉进行比较,如果您没有做任何更改,则不应该有任何比较。
  4. 点击switching the base 。 现在GitHub会比较你的分叉和原来的,你应该看到所有的最新变化。
  5. 点击为这个比较Create a pull request ,并为您的拉取请求分配一个可预测的名称(例如,从原来的更新)。
  6. 点击Create pull request
  7. 向下滚动并单击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>

如果没有更改要同步,这将是无效的。

以下是一些简单的截图