由于某种原因,git命令git clone --recursive [email protected]:foo/bar.git
并未从 子模块中取得最新版本。git clone - 递归不拉最新的子模块
对于子模块“子”,它会回到旧的提交:
$ cd other/sub/
$ git log | head -1
commit 57d0df7269949ef6d5347c5a4556fde7eafef16d
$ grep -r 57d0df7269949ef6d5347c5a4556fde7eafef16d .git/*
.git/modules/other/sub/HEAD:57d0df7269949ef6d5347c5a4556fde7eafef16d
.git/modules/other/sub/logs/HEAD:b0e43d8acf9fc38257b20ab7317b2b86110e8f72 57d0df7269949ef6d5347c5a4556fde7eafef16d Me
<[email protected]> 1394764688 +0530 checkout: moving from master to 57d0df7269949ef6d5347c5a4556fde7eafef16d
任何想法,为什么发生这种情况?
How do I git clone --recursive and checkout master on all submodules in a single line?的一个答案表明我可能会将子模块固定到特定的sha,作者说这是正确的方法。在我的情况下,当我执行克隆时,我想在我的主库和它所指的所有子模块中获得最新版本。
如何确认子模块是否固定在sha 57d0df7269949ef6d5347c5a4556fde7eafef16d?我如何删除它?
感谢。