我正在尝试将git模型更改为具有master
和develop
分支。我有一个子模块,它也有一个master
和develop
分支。我的.gitmodules
当前看起来像这样
[submodule "foo"]
path = foo
url = git.bar.com/foo.git
当我需要从主存储库的develop
分支的子模块的develop
分支提取更改时,我会做类似的事情
cd foo
git checkout develop
git pull origin
cd ..
git commit
git push
在master
分支中,我可以执行git submodule update --remote
从子模块的master
分支中获取最新提交。我希望能够对develop
分支执行相同的操作。
有什么方法可以有条件地在.gitmodules
中设置分支吗?我知道我可以永久设置分支了吗
[submodule "foo"]
path = foo
url = git.bar.com/foo.git
branch = develop
但是这会将问题转移到master
答案 0 :(得分:0)
在超级项目的分支master
中创建
[submodule "foo"]
path = foo
url = git.bar.com/foo.git
branch = master
在超级的分支develop
中:
[submodule "foo"]
path = foo
url = git.bar.com/foo.git
branch = develop
向超级项目添加post-checkout
钩子,以在分支上切换分支
子模块:
#!/bin/sh
# post-checkout hook that switch branch on submodule
prev_HEAD="$1"
new_HEAD="$2"
new_branch="$3"
if [ "$new_branch" = 1 ]; then
git submodule update
fi