介紹git clone --depth=1的用法


情況一:git clone

git clone https://github.com/labuladong/fucking-algorithm

 

使用git可視化命令git log --graph --oneline --all,查看倉庫的所有歷史提交記錄(我這里用alias取了別名glog)



說明:一般倉庫文件不大時,我們都可以用這個方法git clone倉庫,但問題是有時候,在倉庫歷史的某次commit時,有人不小心提交了1G的文件,雖然后面的commit中他把這個文件刪除了,但是在.git文件夾中仍然存儲着這個文件,所以如果我們克隆倉庫這個倉庫,會把所有的歷史協作記錄都clone下來,這樣整個文件會非常大,其實對於我們直接使用倉庫,而不是參與倉庫工作的人來說,只要把最近的一次commit給clone下來就好了。這就好比一個產品有很多個版本,我們只要clone最近的一個版本來使用就行了。實現這個功能就需要用到git clone --depth=1命令


情況二:git clone --depth=1

git clone --depth 1 https://github.com/labuladong/fucking-algorithm.git

 

最近一次commit

說明:可以看到我們只克隆下包含最近一次commit的一個分支,這樣這個項目文件就不會很大

而如果我們想只克隆某個指定分支的最近一次commit,可以使用下面命令

git clone --depth 1  --branch english https://github.com/labuladong/fucking-algorithm.git

 

 

enligh分支的最近一次commit

總結:

  • 用 git clone --depth=1 的好處是限制 clone 的深度,不會下載 Git 協作的歷史記錄,這樣可以大大加快克隆的速度
  • depth用於指定克隆深度,為1即表示只克隆最近一次commit
  • 適合用 git clone --depth=1 的場景:你只是想clone最新版本來使用或學習,而不是參與整個項目的開發工作

git clone --depth=1后拉取其他分支的方法

enligh分支的最近一次commit

上面提到的 git clone --depth=1 操作只會clone一個分支english,如果我們想把其他遠程分支(如master)也克隆到本地,我們需要用下面的命令

$ git remote set-branches origin 'remote_branch_name'
$ git fetch --depth 1 origin remote_branch_name
$ git checkout remote_branch_name

 


Reference

喜歡這篇文章?歡迎打賞~~

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM