gpt4 book ai didi

Git 子模块工作流程

转载 作者:IT王子 更新时间:2023-10-29 00:49:27 25 4
gpt4 key购买 nike

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

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

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

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

以下是我的一些担忧:

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

似乎为了简化我们的子模块工作流程(即一个操作 == 一个命令),我们必须围绕 Git 编写一个相当厚的包装器。这很可悲。

请注意,离开 Git 或将子项目开发完全 merge 到主项目中不是一种选择。

也许我以错误的方式使用了 git submodules?有什么关于工作流程的好教程吗?

即使您不知道正确的答案,也请大声说出来,但请分享我的担忧。 :-)

最佳答案

您可能想尝试 git subtree (alt link)代替。我很幸运,在我的项目中同时使用了远程 repo 和干净(与 master 历史无关)分支。

关于Git 子模块工作流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1596822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com