Nam*_*mbi 16 git git-remote git-submodules git-branch
我正在尝试使用git子模块将10多个存储库聚合到一个结构中以便于开发.
它应该克隆模块并签出分支.而是以分离头模式检出模块.
git clone git@github.com:org/global-repository.git
git submodule update —init
cd config-framework
git status
$git status
#HEAD detached at b932ab5
nothing to commit, working directory clean
Run Code Online (Sandbox Code Playgroud)
gitmodules文件似乎没问题
$cat .gitmodules
[submodule "config-framework"]
path = config-framework
url = git@github.com:org/config-framework.git
branch = MY_BRANCH
Run Code Online (Sandbox Code Playgroud)
我们希望默认情况下检出MY_BRANCH分支,而不是分离头.我们如何实现这一目标?
Von*_*onC 20
子模块始终以分离的HEAD模式检出.
这是因为子模块将检出存储在父仓库索引中的特殊条目中的 SHA1 .
另外,如果您希望子模块遵循您在其中注册的分支.gitmodules
,则需要:
git submodule update --init --remote
Run Code Online (Sandbox Code Playgroud)
这--remote
将是一个git fetch
,加上新的结帐HEAD
.
唉,即使结账也是提交,而不是分支(因为你在子模块中默认没有本地分支),所以...回到分离HEAD
模式.
有关详细信息,请参阅" Git子模块:指定分支/标记 ".
您可以尝试(未测试)a:
git submodule foreach 'git checkout -b $(git config -f /path/to/parent/repo/.gitmodules --get submodule.$path.branch)'
Run Code Online (Sandbox Code Playgroud)
我利用这个事实git submodule foreach
可以访问' $path
',相对于超级项目的子模块目录的名称.
试图指定一个子模块的分支自动检出(对于Git 2.0 提交23d25e4)....但是它被颠倒了(提交d851ffb,2014年4月2日)!
它可能很快就会到来,但目前的实施并非如此.
归档时间: |
|
查看次数: |
13404 次 |
最近记录: |