我们使用git子模块来管理一些依赖于我们开发的许多其他库的大型项目.每个库都是作为子模块引入依赖项目的单独repo.在开发过程中,我们经常想要抓住每个依赖子模块的最新版本.
git有内置命令来执行此操作吗?如果没有,Windows批处理文件或类似文件怎么样呢?
git submodule add -b工作怎么样?
添加具有特定分支的子模块后,新的克隆存储库(之后git submodule update --init)将处于特定提交,而不是分支本身(git status在子模块上显示"当前不在任何分支上").
我无法找到任何信息.gitmodules或.git/config关于子模块的分支或任何具体的承诺,那么,如何Git的数字出来?
此外,是否可以指定标签而不是分支?
我正在使用1.6.5.2版.
使用git子模块和子树之间有什么概念上的区别?
每种情况的典型情况是什么?
在我天真的时候,我已经设置了一个git子模块并将其视为Subversion外部 - 即它现在充满了我刚才意识到的未经提交或推送到任何地方的变化.
是否有一些简单的方法将子模块更改提交/推送回上游存储库?Git推荐的技术是什么,以这种方式在单独的(但链接的)存储库上同时进行开发?
我不清楚以下是什么意思(来自git submodule update docs):
...将使子模块HEAD分离,除非
--rebase或--merge指定...
怎么--rebase/ --merge改变事情?
我的主要用例是有一堆中央存储库,我将通过子模块嵌入到其他存储库中.我希望能够改进这些中央回购,直接在他们的原始位置,或从他们的嵌入回购(通过子模块使用它们的那些).
我使用svn:externals从另一个SVN存储库中使用了两个SVN项目.
我怎样才能在Git中拥有相同的存储库布局结构?
我觉得使用Git子模块对于我的开发工作流程来说有点麻烦.我听说过Git子树和Gitslave.
我在Jenkins的一个项目中有一个子模块.我已启用高级设置以递归更新子模块.
当我运行构建时,我看到工作区有子模块中的文件.问题是,它似乎是子模块的第一次修订.当我推送更改(在GitHub上托管的存储库)时,Jenkins似乎不更新子模块以获得正确的更改.有没有人见过这个?
我喜欢git子模块.另外,我讨厌git子模块.我喜欢他们的是它如何使你能够干净地划分依赖关系等等.我明白让他们指出一个回购的特定提交,我这样做.但在我的情况下,我正在构建一个将在另一个项目中使用的库,所以我想把它保存在那个单独的repo中.
然而,当我每天在这个库上工作时,烦恼就来了,我不得不使用我的库切换回app来提交指针更新.
那么,当我不断更新并添加到这个库时,是否有可能让git子模块始终位于它所指向的repo的头部?