單純從github 下載使用軟體時,可以透過depth 參數來下載最先的程式碼,但是對於有submodule 的項目,執行git submodule update --init --recursive --depth=1 ,因為submodule 是shallow clone, 所以無法checkout 到目標commit。
這種情況有什麼辦法可以解決?
仅有的幸福2017-05-02 09:53:54
我只找到一個fetch/clone各一次的,頗麻煩的方法:
git submodule update --init --depth=1
這時clone到的commit通常都不是submodule註冊的那個,所以會報錯
git ls-tree HEAD:(submodule的路径)
找到想要的那個commit,如
`160000 commit abb03163aeafb8b7fc1efd2413d9f077bcdbeed9 tidy-html5` 的 `abb031`就是
cd到submodule 的clone repo (如.git/modules/tidy-html5
), fetch那个commit git fetch abb031
git submodule update --no-fetch