假设我有一个upstream
存储库,我将其分配给新的origin
。
如果我想将上游repo中的更改合并到我的forked源中,我会在fork中执行类似的操作:
$ git merge upstream/master
如何从原点到上游走向另一个方向?假设我在fork中改变了一些我想要推送给父母的东西 - 我该怎么做呢?
是否只需要为父设置一个新的远程/上游,使用fork作为父设备upstream
?
答案 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 ,因为你无法回到该项目的中央存储库,因为你没有这样做的权利。如果每个人都有权将某些内容推送到项目的核心仓库中,那么大量的垃圾邮件将被推送到热门项目中(更不用说人们创造了更隐蔽的垃圾邮件,例如质量差的代码,病毒等)。
在这种情况下,将代码重新放回中央存储库的唯一机会是告诉项目维护者提取代码。他会检查你的代码,他认为这很好,最终会合并到中央仓库。这就是所谓的拉取请求。
无论其
如果您克隆自己的项目或您正在处理的项目(您是维护者或其中之一),您有权进入中央仓库。所以,在这种情况下,你可以推动。如果您不使用开源,通常会遇到这种情况。只需将中央仓库设置为远程并推送即可。