相关疑难解决方法(0)

Git子模块工作流程

在我的项目中,我需要使用第三方代码,存储在几个Git存储库中.我的项目也存储在(单独的)Git存储库中.在主项目中有几个人和我一起工作,我是维护者.

在早期的项目中,我曾经手动将依赖项复制到Git工作树,添加一个指定我使用的版本的小文件.

现在这是相当不舒服的,因为我需要每天更新一个依赖项,并且经常自己贡献代码,大部分时间都伴随着对主项目的更改.

我决定尝试使用Git子模块进行管理.我尝试的越多,我就越沮丧.甚至看起来手动副本也许更好.

以下是我的一些担忧:

  • 我们不再能够通过单个命令获得一致的存储库状态(git checkout现在需要git submodule update --init).
  • 我们无法正确使用某些Git工具(git archive最值得注意的是).
  • 我们无法从主项目中看到状态更改/差异到子模块.
  • 正如我刚刚发现的那样,git submodule无法使用--git-dir--work-tree选项,并且需要将当前目录的物理更改为"工作树的顶层".

似乎为了简化我们的子模块工作流程(即一个操作==一个命令),我们必须在Git周围编写一个相当厚的包装器.这真是难过;这真是伤心.

请注意,不能选择远离Git或将子项目开发完全合并到主项目中.

也许我用git submodules的是错误的方式?有没有关于工作流程的好教程?

即使您不知道正确的答案,请大家说出来,但请分享我的疑虑.:-)

git workflow git-submodules

42
推荐指数
2
解决办法
6081
查看次数

标签 统计

git ×1

git-submodules ×1

workflow ×1