大家好,我一直想知道这是否可行?我已经思考了好几个小时,我不能把头缠在它上面!
要求:
我想在项目中处理多个git存储库,并仅将代码推送到相应的存储库。
以下是概述:
我正在处理多个项目,这些项目都使用我自己构建的相同自定义库。因此,我为自定义库创建了一个git存储库,并为每个项目创建了单独的存储库。
我创建了以下存储库:
lib:自定义库
答:项目A
B:项目B
项目A的设置:
git init git remote add origin git remote add library git pull origin master git pull library master
现在在对项目A代码进行更改之后,当我尝试推送它时
git push origin master
然后库代码和项目代码都被推送到存储库A.
但我想只将项目代码推送到存储库A.
我也尝试过使用分支并使用以下命令:
git checkout -b library git pull library library
我也试过了
git pull library library:master
但是收到以下错误:
fatal: The remote end hung up unexpectedly
答案 0 :(得分:0)
您需要将存储库分隔为" git submodules。"这允许您在项目中保留多个存储库,并且只有特定项目的代码才会被推送到其各自的远程。
这里需要注意的是每个子模块必须完全包含在子目录中。子模块中的文件不能混合在一起。
答案 1 :(得分:0)
划分库代码和项目代码听起来不错,但是将它们拉到同一个本地存储库中是行不通的。 (在这种情况下,您必须决定是否要从一个或另一个存储库中检出提交,并且您不能同时在两个存储库中工作。)
您确实需要将它们保存在单独的本地存储库中。要组合它们,您可以使用子模块,子树,git-repo,gitslave或某些自定义或语言特定方式(mvn,rubygems等)来引用库代码。
可能最好的方法是向google提出一些建议。
答案 2 :(得分:0)
关注gitignore。我相信你应该能够为这两个项目制作一个gitignore并列出要忽略的文件(与库相关的文件)