在GitHub中合并叉子

我分叉了一个GitHub仓库。 然后我对叉子进行了一些更改。 然后原始存储库合并我的更改和其他人。 现在,我想合并那些我缺少的更改。 我尝试了一个简单的拉,然后推,但是这产生了我的承诺一式两份。 什么是最好的方式来做到这一点?


您可能对每个存储库都有一个“远程”。 你需要从一个遥控器拉到另一个遥控器。

如果您最初是从您的叉子克隆的,则该远程设备将被称为“原点”。 如果您还没有添加它,则需要将第一个人的存储库添加为另一个远程存储库:

git remote add firstguy git://github.com/firstguy/repo.git

在完成这一切之后,你的确应该能够做到

git pull firstguy master
git push origin

请记住, git pull只不过是一个按顺序执行git fetchgit merge的宏。 你只需要从第一个人的仓库获取提交列表,然后将他的分支合并到你的树中。 合并应该在你的两个分支上进行提交。

当然,GitHub在其永久的迷人之处给了你一条捷径。 在储存库的分支上有一个“快进”按钮,如果完全合并到另一端,您可以使用它来抓住叉子。


所以上面接受的答案完全不适合我。 也就是说,它似乎失去了与原始github作者的联系,然后在它之后似乎不再有效。 我认为问题在于答案遗漏了远程名称和分支之间的/。 所以它会从远程获取一个叫master的分支,但是不能对它做任何事情。 不知道为什么。

这是github从他们的网站推荐的方式:http://help.github.com/fork-a-repo/

一旦你克隆了你的分叉回购,你需要添加一个远程指向原来的东西,就像之前回答说的那样。 他们喜欢称之为上游,但并不重要。

git remote add upstream git://github.com/octocat/Spoon-Knife.git

然后你取

git fetch upstream

你会看到可用于合并的版本

From git://github.com/octocat/Spoon-Knife.git
 * [new branch]      gh-pages   -> upstream/gh-pages
 * [new branch]      master     -> upstream/master

然后,您只需选择要合并的分支。注意,这些分支不是本地分支,它们存储在远程分支中。 但是如果你没有一个名为upstream / master的本地分支(这是允许的),你应该很好地合并下面的行:

git merge upstream/master

或者,您可以使用以下代码行快速获取/合并(至少在初始获取后):

git pull upstream/master
链接地址: http://www.djcxy.com/p/18057.html

上一篇: Merging between forks in GitHub

下一篇: NPM vs. Bower vs. Browserify vs. Gulp vs. Grunt vs. Webpack