这是我的目标工作流程:
我有两个存储库。一个用于用 PHP 编码的网站框架,另一个用于自定义 PHP 代码,以添加客户想要的网站功能。
我需要能够从客户端网站的两个存储库中提取数据,但只推送到一个存储库,这将是自定义代码,并且我只希望第二个存储库保存自定义代码,而不是框架。
我怎样才能实现这个目标?
我添加了两个存储库,但它总是进行合并(因为我使用git pull
)但如果我只使用git remote update
我的文件没有改变。
我为设置采取的步骤:
Remote:
mkdir ~/git/framework.git
cd ~/git/framework.git
git init --bare
mkdir ~/git/client1.git
cd ~/git/client1.git
git init --bare
Local:
mkdir ~/www/framework
cd ~/www/framework
git init
git remote add framework ssh://user@host/~/git/framework.git
mkdir ~/www/client1
cd ~/www/client1
git init
git remote add framework ssh://user@host/~/git/framework.git
git remote add client ssh://user@host/~/git/client1.git
这是我的本地客户端配置:
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
ignorecase = true
precomposeunicode = true
[remote "framework"]
url = ssh://user@host/~/git/framework.git
fetch = +refs/heads/*:refs/remotes/framework/*
[remote "client"]
url = ssh://user@host/~/git/client1.git
fetch = +refs/heads/*:refs/remotes/client/*
对于您的模式,您可以将其中一个存储库声明为只读,如下所示这个答案(几个建议) https://stackoverflow.com/a/10270189/3195526。然后你可以使用git pull client
and git pull framework
同步,并且git push client
推送您的代码。设置client
作为您的默认遥控器,您可以这样做git branch --set-upstream-to client/master
(或者将 master 替换为默认情况下要推送到的任何远程分支)。
更常见的模式是使用分支将框架和客户端分开。这也意味着您只需要两个存储库:共享裸存储库和本地开发存储库。你可以从origin
,它有两个主要分支,framework
and client
。您可以选择要合并的内容framework
into client
,并且你(几乎)永远不会合并client
回到framework
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)