單純從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