淺復制
工作要用到的.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