git加速和只下載部分目錄


淺復制

工作要用到的.git有1.8G太大了。下載過程要好幾個小時,太慢了。可以這樣操作

git clone 默認會下載項目的完整歷史版本,如果你只關心最新版的代碼,而不關心之前的歷史信息,可以使用 git 的淺復制功能:

$ git clone --depth=1 https://github.com/bcit-ci/CodeIgniter.git
--depth=1 表示只下載最近一次的版本,使用淺復制可以大大減少下載的數據量,例如,CodeIgniter 項目完整下載有近 100MiB ,而使用淺復制只有 5MiB 多,這樣即使在惡劣的網絡環境下,也可以快速的獲得代碼。如果之后又想獲取完整歷史信息,可以使用下面的命令:

$ git fetch --unshallow

對zadas我實際用的命令是:git clone --depth=1 http://shagit01.cn.zmt.local/ST/zadas.git

用該命令還是沒法得到分支 fusion_dev下的代碼。

斷點續傳的方法

mkdir zadas

cd zadas

git fetch http://shagit01.cn.zmt.local/ST/zadas

中間如果斷了,就再執行一下 git clone ...

直到fetch完畢后,出現以下字樣

 From  http://shagit01.cn.zmt.local/ST/zadas.git

 *branch           HEAD                -> FETCH_HEAD

然后用git checkout FETCH_HEAD

或者也等同於git fetch  http://shagit01.cn.zmt.local/ST/zadas.git HEAD

對這個方法需要持謹慎態度,因為我 git branch -r 顯示遠程分支,結果為空,實際是不對的。

下載個別目錄

$ mkdir 文件夾名稱

創建一個空的本地倉庫
$ git init

連接遠程倉庫GitHub
$ git remote add -f origin <url>
我的操作:$ git remote add -f origin https://github.com/aliyun/alicloud-android-demo.git
然后控制台會顯示一些updating...信息。注意,這里的url必須是.git結尾的。

開啟sparse checkout 模式
$ git config core.sparsecheckout true

告訴Git哪些文件或者文件夾是你真正想Check Out的
(你可以將它們作為一個列表保存在 .git/info/sparse-checkout 文件中。)

例如:
$ echo libs >> .git/info/sparse-checkout

最后一步,拉取想要的分支

$ git pull origin master

 


免責聲明!

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



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