当我最初添加我的子模块时,我指定了一个特定的分支,如.gitmodule
文件中所示:
[submodule "externals/grpc/grpc"]
path = externals/grpc/grpc
url = git@github.com:me/grpc.git
branch = release-1.0
我想更改为子模块的主分支,因此我将.gitmodules
中的分支从release-1.0
更改为master
,并且为了更好地衡量,只是从我的子模块中删除了子模块父母git树:
cd $submodules
rm -rf grpc
cd $gitroot
git submodule sync
git submodule update --init --recursive
现在,当我回到我的子模块时,它仍然从release-1.0
分支上的提交中检出,而不是最新的主提交。
切换子模块的分支时我缺少哪些步骤?
答案 0 :(得分:5)
如果您想切换到以前从未跟踪过的分支。
更改 .gitmodules
中的分支后,请执行以下操作:
git submodule update --init --recursive --remote
cd submodule_name
git checkout new_branch_name
答案 1 :(得分:4)
进入子模块所在的目录,git checkout
正确的分支/提交。然后上升一级,git add
和git commit
目录。这将使用正确的提交检查子模块。
不要忘记在更新后在其他客户端上运行git submodule update --recursive
。
答案 2 :(得分:2)
以上答案(@milgner)对我不起作用(git版本2.17.0)。也许我做错了。
以下是对我有用的东西:
Control view = FindControl("view");
//Then add your item to div
view.Controls.Add(item);