84669 人学习
152542 人学习
20005 人学习
5487 人学习
7821 人学习
359900 人学习
3350 人学习
180660 人学习
48569 人学习
18603 人学习
40936 人学习
1549 人学习
1183 人学习
32909 人学习
单纯从 github 下载使用软件时,可以通过 depth 参数来下载最先的代码,但是对于有 submodule 的项目,执行 git submodule update --init --recursive --depth=1 ,因为 submodule 是 shallow clone, 所以无法 checkout 到目标 commit。
这种情况有什么办法解决?
走同样的路,发现不同的人生
我只找到一个fetch/clone各一次的,颇麻烦的方法:
git submodule update --init --depth=1 这时clone到的commit一般都不是submodule注册的那个,所以会报错
git submodule update --init --depth=1
git ls-tree HEAD:(submodule的路径) 找到想要的那个commit,如
git ls-tree HEAD:(submodule的路径)
`160000 commit abb03163aeafb8b7fc1efd2413d9f077bcdbeed9 tidy-html5` 的 `abb031`就是
cd到submodule 的clone repo (如.git/modules/tidy-html5), fetch那个commit git fetch abb031
.git/modules/tidy-html5
git fetch abb031
git submodule update --no-fetch
我只找到一个fetch/clone各一次的,颇麻烦的方法:
git submodule update --init --depth=1
这时clone到的commit一般都不是submodule注册的那个,所以会报错git ls-tree HEAD:(submodule的路径)
找到想要的那个commit,如cd到submodule 的clone repo (如
.git/modules/tidy-html5
), fetch那个commitgit fetch abb031
git submodule update --no-fetch