在查看源碼的過程中震叮,相信很多人都像我一樣,遇到某個公司或個人的repository是幾個項目的集合整理鳍鸵,而我只要其中某個項目文件夾苇瓣。那不依賴其他軟件,怎么通過git去下載呢偿乖?击罪??
重點來了
下面直接給個例子贪薪,然后再解釋說明媳禁。相信讀者會更容易理解和操作。
上圖畫紅色圈圈的是阿里最新推出的熱修復框架sophix的demo画切,也就是我想下載的文件夾 hotfix_android_demo
竣稽。
我們一步一步操作先,最后會給出在GitBash上完整操作的截圖霍弹。
-
先進入到你要存放的路徑
$ cd <路徑>
我的操作 :
$ cd D:/android/demo/SophixDemo
我的
SophixDemo
文件夾是剛剛創(chuàng)建的空文件夾毫别。想在命令行里創(chuàng)建文件夾的話,那就$ mkdir 文件夾名稱
-
創(chuàng)建一個空的本地倉庫
$ 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
簡單解釋一下:
Git1.7.0以后加入了Sparse Checkout模式钝计,這使得Check Out指定文件或者文件夾成為可能恋博。
-
告訴Git哪些文件或者文件夾是你真正想Check Out的
(你可以將它們作為一個列表保存在 .git/info/sparse-checkout 文件中。)例如:
$ echo libs >> .git/info/sparse-checkout
$ echo apps/register.go >> .git/info/sparse-checkout
$ echo resource/css >> .git/info/sparse-checkout
我的操作:
$ echo hotfix_android_demo >> .git/info/sparse-checkout
還記得我開頭說要下載阿里sophix的demo嗎 -
最后一步私恬,拉取想要的分支
$ git pull origin master
齊活债沮!
以下在GitBash上完整的操作。方便對照
你的本地路徑下本鸣,可以看到疫衩,只有你想要的文件夾,其他亂七八糟的都沒有
具體可參考Git的Sparse checkout文檔: http://schacon.github.io/git/git-read-tree.html#_sparse_checkout