Eon*_*nil 25 git git-submodules
当我将Git子模块添加到这样的Git存储库时,
git submodule add ssh://server/proj1/ proj1
git submodule init
git submodule update
Run Code Online (Sandbox Code Playgroud)
添加的子模块将处于分离的HEAD模式.我不知道那是什么,但我知道子模块将链接到目标存储库的特定修订版.
我不知道它是如何工作的,无论如何它看起来像是一个代理分支.我通过切换到master分支解决了这个问题.
cd proj1
git checkout master
Run Code Online (Sandbox Code Playgroud)
这将切换当前分支实际主HEAD,但这不会更新链接.因此,如果再次克隆整个存储库,它仍将链接到旧版本.
如果我想让它始终与最新版本(HEAD)相关联,我该怎么办?
Von*_*onC 35
2013年3月更新
Git 1.8.2增加了跟踪分支的可能性.
"
git submodule"开始学习一种新模式,以便与远程分支的尖端集成(而不是与超级项目的gitlink中记录的提交集成).
# add submodule to track master branch
git submodule add -b master [URL to Git repo];
# update your submodule
git submodule update --remote
Run Code Online (Sandbox Code Playgroud)
另请参阅Vogella关于子模块的教程.
原始答案(2011年12月)
添加的子模块将处于分离的HEAD模式
是的,子模块是关于引用特定提交,而不是分支.
所以:
master子模块的分支一样),你可以在该分支的顶部创建其他提交(但你必须回到父仓库以便提交所述父代,因为你需要记录您创建的新子模块提交)有关更多信息,请参阅" 子模块的真实性质 ".
如果您一直想要另一个repo的最新提交,最简单的方法是将它们合并在一起(例如使用子树合并).
有关详细信息和参考,请参阅" 合并2个相同的存储库GIT ".
| 归档时间: |
|
| 查看次数: |
18716 次 |
| 最近记录: |