【问题标题】:Multiple git repositories in a project and pull/push code to corresponding repositories only一个项目中有多个 git 存储库,并且仅将代码拉/推到相应的存储库
【发布时间】:2014-04-21 15:47:25
【问题描述】:

大家好,我一直想知道这是否可行?我已经思考了好几个小时了,我无法理解它!

要求:
我想在一个项目中处理多个 git 存储库,并且只将代码推送到相应的存储库。

概述如下:
我正在处理多个项目,这些项目都使用我构建的同一个自定义库。因此,我为自定义库创建了一个 git 存储库,并为每个项目创建了单独的存储库。

我创建了以下存储库:
lib:自定义库
A:项目 A
B:项目 B

项目 A 的设置:

混帐初始化 git远程添加原点 git远程添加库 git pull 起源大师 git pull 库主

现在在项目 A 代码中进行更改之后,当我尝试将其推送时 git push origin master 然后将库代码和项目代码都推送到存储库 A。
但我只想将项目代码推送到存储库 A。

我也尝试过使用分支并使用以下命令:

git checkout -b 库 git pull 库库

我也试过 git pull library library:master

但出现以下错误:

fatal: 远端意外挂断

【问题讨论】:

  • 你考虑过使用 git 子模块吗? (即将你的库保存在单独的仓库中,并为每个使用它作为子模块的项目拉取它)

标签: git


【解决方案1】:

查看 gitignore。我相信您应该能够为这两个项目创建一个 gitignore 并列出要忽略的文件(与库关联的文件)

【讨论】:

    【解决方案2】:

    划分库代码和项目代码听起来不错,但是将它们拉到同一个本地存储库中是行不通的。 (在这种情况下,您必须决定是从一个存储库还是从另一个存储库签出提交,并且您不能同时在这两个存储库中工作。)

    您确实需要将它们保存在单独的本地存储库中。要将它们组合起来,您可以使用子模块、子树、git-repogitslave 或一些自定义或特定语言的方式(mvn、rubygems 等)来引用库代码。

    也许最好的方法是向google 寻求一些建议。

    【讨论】:

      【解决方案3】:

      您需要通过将存储库添加为“git submodules”来分隔存储库。这允许您在一个项目中保留多个存储库,并且只有来自特定项目的代码才会被推送到其各自的远程。

      这里需要注意的是每个子模块必须完全包含在一个子目录中。子模块中的文件不能混合在一起。

      【讨论】:

      • 感谢您的回复。我希望两个 repo 目录相互合并。像我的库一样,其中也有文件夹结构,并且项目的工作方式类似于放置在子文件夹中的库的主题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-08
      • 1970-01-01
      • 2015-02-12
      • 2010-09-12
      • 1970-01-01
      • 2016-03-12
      • 2021-11-17
      相关资源
      最近更新 更多