Git設置克隆深度後看不到遠端分支

最近克隆一個項目,爲了加快速度和節省空間,在克隆的時候設置了 depth=1 也就是隻記錄最近一次提交,在 SourceTree 裏操作如下

克隆之後文件歷史如下,只會有一行記錄

此時想要切換分支發現遠端分支顯示不全,只有淺克隆的分支。

執行 git branch -a 顯示也是如此

經過查詢文檔 git-remote - set-branches 找到了 git remote 命令,用來管理追蹤的遠程分支,其中 set-branches 命令用來更改追蹤的分支,可以在倉庫設置完成後來追蹤新的遠程分支。這裏直接使用 git remote set-branches origin '*',如果只想追蹤某個分支,也可以使用 git remote set-branches origin 'branch-name'' 命令。不確定分支名字可以使用 git ls-remote origin 命令查看,origin 後面只需要跟紅框中的名字就行。

最後要做一次 git fetch -v,在 SourceTree 中就是 Fetch。

然後就可以看到添加的遠程分支了。

最後,根據文檔 git-clone - depth 中的說明,造成看不見其他分支的原因,還是因爲在 clone 的時候使用了 --depth 參數相當於使用了 --single-branch 參數,此時只需要加上 --no-single-branch 即可。如果希望其他分支也是 shallow clone,則需要使用 --shallow-submodules 命令。粗略翻了一下,沒有在 SourceTree 克隆界面發現相關設置,可能還是需要用命令來實現以上需求。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章