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中的当前分支:
号
如果只想下载更改而不自动合并,请使用git fetch而不是git pull。
如果要禁用推送到该存储库,请使用类似的方法将推送URL设置为无效的URL
1
| git config remote.upstream.pushurl"NEVER GONNA GIVE YOU UP" |
如果你试图推到upstream上,git现在会冲你大喊大叫,因为你找不到回购协议(对rickroll很抱歉,但它是第一个随机串,突然出现在我的头上)。
- 太好了,谢谢。还有一件事:我有没有办法让这个遥控器变成只读的,这样我就不会不小心撞到它了?
- 我开始回答,但我看到麦克洛文已经编辑了他的回答,包括这个。
- 由于git 2.9,您需要指定--allow unrelevant histories标志。见stackoverflow.com/a/37938036/3799847
- 我需要发行EDOCX1[0]
- 哈哈!2018年轧钢
- 我试过了,但是git pull upstream挂了…有什么想法吗?
- 如果我只想推到Acme而不想推到Generic呢?
- 对于任何想要为依赖性而做这件事,而不仅仅是建立一个项目的人,请参见子模块:(blog.joncairs.com/2011/10/how to use git submodules)