Sva*_*zen 5 git git-submodules git-branch
我正在使用git submodule以跟踪子项目。该子模块指向一个特定的分支,但是我现在需要对其进行更改。
我试图手动编辑.gitmodules文件并更改branch =条目,但是稍后我提供的用于更新存储库的每条命令都不会执行任何操作或失败。
我试过了
git submodule sync # Succeeds, but nothing happens
git submodule update # Doesn't do anything
git submodule update --remote # fails with Needed a single revision
Run Code Online (Sandbox Code Playgroud)
该子项目确实已正确签出,并且其中的gitk表明它确实具有我需要切换到的新分支。我可以手动执行此操作并提交新的哈希,但是我不确定是否git submodule会真正理解这种更改。
我也尝试删除所有子模块文件夹(包括.git文件夹内)并重新运行
git submodule update --init --recursive --remote
Run Code Online (Sandbox Code Playgroud)
但是我仍然使项目保持与以前相同的状态(我想是因为它仍在更新为提交的哈希)。
再次克隆,然后:
更改子模块内的分支
cd submodule
git checkout -b anotherBranch
# if it is a new branch, push it first.
git push -u origin anotherBranch
Run Code Online (Sandbox Code Playgroud)然后在父仓库中反映该更改:
cd ..
git config -f .gitmodules submodule.<pathToSubmdule>.branch anotherbranch
git add .
git commit -m "record new gilink, and modified .gitmodules"
git push
Run Code Online (Sandbox Code Playgroud)
然后尝试再次克隆您的父存储库,以检查是否一切正常。