在這個問題:如何克隆其默認分支上的子模塊簽出git存儲庫?
當時想通了就必須簽在執行git clone --recursive
git的子模塊的默認分支,但如何做到這一點?
我試圖尋找,發現這個其他問題:
暗示使用命令git clone --recurse-submodules
但克隆其子模塊仍然沒有恢復默認分支簽出庫後。
在這個問題:如何克隆其默認分支上的子模塊簽出git存儲庫?
當時想通了就必須簽在執行git clone --recursive
git的子模塊的默認分支,但如何做到這一點?
我試圖尋找,發現這個其他問題:
暗示使用命令git clone --recurse-submodules
但克隆其子模塊仍然沒有恢復默認分支簽出庫後。
您可以使用git submodule foreach
在每個子模塊運行任意命令。 --recursive
標誌將遞歸通過子模塊的子模塊。 git remote show [name-of-remote]
會說哪個分支[name-of-remote]
目前有活動。與其他一些工具來清理git remote show
的輸出,結合它們給出:
git submodule foreach --recursive "git checkout $(git remote show origin | grep 'HEAD branch' | sed 's/.*: //')"
這,當然,依賴於已經有克隆的子模塊。
謝謝!我想我可以做的命令'git clone --recursive https ...; git submodule foreach ...',那麼它應該克隆所有內容並簽出他們的主人。 – user
有獨立的解決方案平臺還是Windows版本的平臺?如果我在Windows上運行這個命令,它將無法使用'grep'HEAD分支'| sed's /.*://''部分。 – user
@user我相信'grep'和'sed'包含在標準的Git for Windows安裝中,儘管取決於您在安裝過程中選擇了哪些選項,您可能需要使用git bash而不是cmd。 – 8bittree