关于版本控制:从另一个存储库中获取Git

Git pull from another repository

我有一个名为Generic的存储库,它是一个通用应用程序。我将它分叉到一个名为Acme的存储库中,该存储库仅构建在存储了Generic存储库的应用程序上,并向它添加了acme联合品牌。

如果我对Generic中的核心功能进行了更改,我想用我对Generic中的核心功能所做的最新更改来更新Acme存储库。我该怎么做?

据我所知,我基本上是在尝试将上游存储库中所做的更改合并到当前的fork中。

如果这意味着什么的话,我尝试这样做是因为我有一个通用的应用程序,然后我在它的基础上为单个客户创建和品牌(如本例中的Acme)。如果有更干净的方法,请告诉我。


在您的Acmerepo中发出以下命令。它添加了一个新的远程存储库,名为upstream,指向Genericrepo。

1
git remote add upstream https://location/of/generic.git

然后,您可以使用以下命令将对Generic所做的任何更改合并到Acme中的当前分支:

1
git pull upstream

如果只想下载更改而不自动合并,请使用git fetch而不是git pull

如果要禁用推送到该存储库,请使用类似的方法将推送URL设置为无效的URL

1
git config remote.upstream.pushurl"NEVER GONNA GIVE YOU UP"

如果你试图推到upstream上,git现在会冲你大喊大叫,因为你找不到回购协议(对rickroll很抱歉,但它是第一个随机串,突然出现在我的头上)。