我不清楚以下是什么意思(来自git submodule update docs):
...将使子模块HEAD分离,除非
--rebase或--merge指定...
怎么--rebase/ --merge改变事情?
我的主要用例是有一堆中央存储库,我将通过子模块嵌入到其他存储库中.我希望能够改进这些中央回购,直接在他们的原始位置,或从他们的嵌入回购(通过子模块使用它们的那些).
在我的项目中,我需要使用第三方代码,存储在几个Git存储库中.我的项目也存储在(单独的)Git存储库中.在主项目中有几个人和我一起工作,我是维护者.
在早期的项目中,我曾经手动将依赖项复制到Git工作树,添加一个指定我使用的版本的小文件.
现在这是相当不舒服的,因为我需要每天更新一个依赖项,并且经常自己贡献代码,大部分时间都伴随着对主项目的更改.
我决定尝试使用Git子模块进行管理.我尝试的越多,我就越沮丧.甚至看起来手动副本也许更好.
以下是我的一些担忧:
git checkout现在需要git submodule update --init).git archive最值得注意的是).git submodule无法使用--git-dir和--work-tree选项,并且需要将当前目录的物理更改为"工作树的顶层".似乎为了简化我们的子模块工作流程(即一个操作==一个命令),我们必须在Git周围编写一个相当厚的包装器.这真是难过;这真是伤心.
请注意,不能选择远离Git或将子项目开发完全合并到主项目中.
也许我用git submodules的是错误的方式?有没有关于工作流程的好教程?
即使您不知道正确的答案,请大家说出来,但请分享我的疑虑.:-)
我有一个cat依赖于libzzz库的 C++ 项目。它libzzz有自己的 git 存储库,现在我要为该cat项目创建一个存储库。
如何组织 CMake 构建脚本cat?
选项1:CMake的脚本cat考虑libzzz建造和安装在系统和cat项目提供FindLibZZZ.cmake脚本搜索libzzz中/usr/include/libzzz + /usr/lib/libzzz。但是如何处理非linux平台呢?我个人不喜欢这个选项。
选项 2:在 GIT 存储库中添加某种链接或依赖项,这些链接或依赖项cat会自动将libzzz源从其源签出到某个cat子目录中。所以cat的 CMakeLists.txt 考虑libzzz放在 somecat的子目录中。怎么做?