對於存在 submodule 的 git 倉庫怎麼 clone 最少的程式碼?對比 git clone --depth=1
怪我咯
怪我咯 2017-05-02 09:51:54
0
1
1148

單純從github 下載使用軟體時,可以透過depth 參數來下載最先的程式碼,但是對於有submodule 的項目,執行git submodule update --init --recursive --depth=1 ,因為submodule 是shallow clone, 所以無法checkout 到目標commit。

這種情況有什麼辦法可以解決?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回覆(1)
仅有的幸福

我只找到一個fetch/clone各一次的,頗麻煩的方法:

  1. git submodule update --init --depth=1 這時clone到的commit通常都不是submodule註冊的那個,所以會報錯

  2. git ls-tree HEAD:(submodule的路径) 找到想要的那個commit,如

    `160000 commit abb03163aeafb8b7fc1efd2413d9f077bcdbeed9  tidy-html5` 的 `abb031`就是
  3. cd到submodule 的clone repo (如.git/modules/tidy-html5), fetch那个commit git fetch abb031

  4. git submodule update --no-fetch

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板