我必须更新主仓库中使用的子模块的仓库URL。这些是我遵循的步骤。
1)修改.gitmodules
文件中的回购URL。
2)运行git submodule sync
(然后.git/config
已使用新的URL更新)
3)然后我执行了以下命令:
git submodule update --init --remote -- <path-to-submodule-folder>
此后,我从新的仓库URL更新了子模块文件。但是在.git/modules/<path-to-submodule-folder>/packed-refs
文件中,标记仍仅是先前存储库的标记。
例如:
子模块之前和之后的子模块的packed-refs与下面的相同(这是从先前的仓库URL获取的标签):
208058b9ad3fd54caf66a9c9972cfe80d4f4bc13 refs/tags/3.3.3
3dc3a0ea2d0773af4c0ffd7bbcb21c608e28fcef refs/tags/3.3.4
81bdde705cc69776fd63c870581ee0c793d48873 refs/tags/3.3.5
f8d653d1f9329081e017caf6cb9341834a71b6d2 refs/tags/3.3.6
21ae2afd4edaa1b69782c67a54182d34efe43f9c refs/tags/3.3.7
理想情况下,子模块更新后,我应该在packed-refs文件中获取新标签,以便我可以签出到新存储库中的特定标签。
谢谢!
查看是否可以通过转到更新的子模块子文件夹并获得git fetch --tags
来获得这些标签
请参见“ Does “git fetch --tags” include “git fetch”?”。默认情况下,单独使用git fetch
(由git submodule update --remote
完成)不会获取标签。