在進行專案開發的時候,有時候會有這樣的需求那就是:我們只希望從git倉庫裡取指定的檔案或者資料夾出來。在svn裡面,這非常容易實現,因為svn基於檔案方式儲存,而git卻是基於元資料方式分布式儲存檔案資訊的,它會在每一次clone的時候將所有資訊都取回到本地,即相當於在你的機器上生成乙個轉殖版的版本庫。因此在git1.7.0以前,這無法實現,但是幸運的是在git1.7.0以後加入了sparse checkout模式,這使得check out指定檔案或者資料夾成為可能。
具體實現如下:
1 $mkdirproject_folder
2$cd project_folder
3$git init
4 $git remote add -f origin
上面的**會幫助你建立乙個空的本地倉庫,同時將遠端git server url加入到git config檔案中。
接下來,我們在config中允許使用sparse checkout模式:
1 $git config core.sparsecheckout true
接下來你需要告訴git哪些檔案或者資料夾是你真正想check out的,你可以將它們作為乙個列表儲存在.git/info/sparse-checkout檔案中。
例如:
1 $echo 「libs」 >> .git/info/sparse-checkout3 $echo 「resource/css」 >> .git/info/sparse-checkout
最後,你只要以正常方式從你想要的分支中將你的專案拉下來就可以了:
1 $git pull origin master
具體您可以參考git的sparse checkout文件:
乙個完整的例子:
1 #目標,獲取https://github.com/pallets/flask.git開源專案的examples/flaskr檔案見內容做測試
Git轉殖部分檔案
mkdir druid cd druid git init 初始化空倉庫 git remote add f origin 關聯遠端位址 git config core.sparsecheckout true 開啟sparse checkout模式 echo druid doc git info sp...
Git轉殖部分檔案
轉殖部分檔案 轉殖部分檔案 總結一下 乙個完整的例子 在進行專案開發的時候,有時候會有這樣的需求那就是 我們只希望從git倉庫裡取指定的檔案或者資料夾出來。在svn裡面,這非常容易實現,因為svn基於檔案方式儲存,而git卻是基於元資料方式分布式儲存檔案資訊的,它會在每一次clone的時候將所有資訊...
Git轉殖部分檔案
轉殖部分檔案轉殖部分檔案 總結一下 乙個完整的例子 在進行專案開發的時候,有時候會有這樣的需求那就是 我們只希望從git倉庫裡取指定的檔案或者資料夾出來。在svn裡面,這非常容易實現,因為svn基於檔案方式儲存,而git卻是基於元資料方式分布式儲存檔案資訊的,它會在每一次clone的時候將所有資訊都...