将git repo从源代码合并到上游存储库

时间:2013-09-19 00:12:31

标签: git git-merge

假设我有一个upstream存储库,我将其分配给新的origin

如果我想将上游repo中的更改合并到我的forked源中,我会在fork中执行类似的操作:

$ git merge upstream/master

如何从原点到上游走向另一个方向?假设我在fork中改变了一些我想要推送给父母的东西 - 我该怎么做呢?

是否只需要为父设置一个新的远程/上游,使用fork作为父设备upstream

2 个答案:

答案 0 :(得分:4)

fork只是原始存储库的另一个克隆。

如果要在它们之间共享提交/分支,请将它们都添加为本地存储库的remote,然后就可以决定如何合并并将提交推送到哪个存储库。

当您执行git merge upstream/master时,您将当前的master遥控器的upstream分支加入。如果您push对上游(git push upstream master)进行了这些更改,您就会更新upstream遥控器。如果您push将其origin设置为git push origin master远程({{1}}),则您将更新原始存储库。

答案 1 :(得分:0)

fork和clone之间的唯一区别是 access

如果你克隆一些开源项目,你通常会做一个 fork ,因为你无法回到该项目的中央存储库,因为你没有这样做的权利。如果每个人都有权将某些内容推送到项目的核心仓库中,那么大量的垃圾邮件将被推送到热门项目中(更不用说人们创造了更隐蔽的垃圾邮件,例如质量差的代码,病毒等)。

在这种情况下,将代码重新放回中央存储库的唯一机会是告诉项目维护者提取代码。他会检查你的代码,他认为这很好,最终会合并到中央仓库。这就是所谓的拉取请求

无论其

如果您克隆自己的项目或您正在处理的项目(您是维护者或其中之一),您有权进入中央仓库。所以,在这种情况下,你可以推动。如果您不使用开源,通常会遇到这种情况。只需将中央仓库设置为远程并推送即可。