Ben*_*Ben 54 git git-submodules
我喜欢git子模块.另外,我讨厌git子模块.我喜欢他们的是它如何使你能够干净地划分依赖关系等等.我明白让他们指出一个回购的特定提交,我这样做.但在我的情况下,我正在构建一个将在另一个项目中使用的库,所以我想把它保存在那个单独的repo中.
然而,当我每天在这个库上工作时,烦恼就来了,我不得不使用我的库切换回app来提交指针更新.
那么,当我不断更新并添加到这个库时,是否有可能让git子模块始终位于它所指向的repo的头部?
Von*_*onC 41
正如我在" git submodule tracking latest "中提到的那样,你可以从git 1.8.2(2013年3月)开始创建一个子模块跟踪分支的HEAD:
git submodule add -b <branch> <repository> [<path>]
Run Code Online (Sandbox Code Playgroud)
子模块SHA1仍作为gitlink(索引中的特殊条目)记录在父存储库中
但是a git submodule update --remote会更新SHA1的条目,该条目匹配子模块远程仓库的分支的HEAD.
如果您有一个现有的子模块,您可以使用以下分支:
cd /path/to/your/parent/repo
git config -f .gitmodules submodule.<path>.branch <branch>
cd path/to/your/submodule
git checkout -b branch --track origin/branch
# if the master branch already exist:
git branch -u origin/master master
cd /path/to/your/parent/repo
git add path/to/your/submodule
git commit -m "Make submodule tracking a branch"
Run Code Online (Sandbox Code Playgroud)
Gre*_*ill 27
不,这是设计的.如果有一种方法可以将子模块指向某个其他存储库的"当前头",那么就无法从主存储库中检索历史版本(例如标记版本).它不知道要检查哪个版本的子模块.
话虽如此,您可能对git子树脚本感兴趣.这提供了一种不同的子模块处理方式,可能与您的工作流程更兼容.最近有关HN的帖子让我想起了这一点.
| 归档时间: |
|
| 查看次数: |
25561 次 |
| 最近记录: |