Git克隆部分文件


克隆部分文件

http://blog.csdn.net/linlzk/article/details/49019787 在進行項目開發的時候,有時候會有這樣的需求那就是:我們只希望從Git倉庫里取指定的文件或者文件夾出來。在SVN里面,這非常容易實現,因為SVN基於文件方式存儲,而Git卻是基於元數據方式分布式存儲文件信息的,它會在每一次Clone的時候將所有信息都取回到本地,即相當於在你的機器上生成一個克隆版的版本庫。

因此在Git1.7.0以前,這無法實現,但是幸運的是在Git1.7.0以后加入了Sparse Checkout模式,這使得Check Out指定文件或者文件夾成為可能。

具體實現如下:

 
  
  
 
 
         
x
mkdir project_folder
cd project_folder
git init
git remote add -f origin <url>

上面的代碼會幫助你創建一個空的本地倉庫,同時將遠程Git Server URL加入到Git Config文件中。  接下來,我們在Config中允許使用Sparse Checkout模式: 

 
  
  
 
 
         
x
git config core.sparsecheckout true

接下來你需要告訴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

最后,你只要以正常方式從你想要的分支中將你的項目拉下來就可以了:

 
  
  
 
 
         
x
git pull origin master

總結一下

1.指定遠程倉庫

2.指定克隆模式: 稀疏克隆模式

3.指定克隆的文件夾(或者文件)

4.拉取遠程文件

 
  
  
 
 
         
x
git remote add -f origin <url>
git config core.sparsecheckout true
echo “resource/css” >> .git/info/sparse-checkout #resource/css路徑
git pull origin master

一個完整的例子:

 
  
  
 
 
         
x
 
  mkdir gitSparse
  cd gitSparse/
  git init
  git remote add -f origin https://github.com/bestswifter/MySampleCode.git
  ls
  git config core.sparsecheckout true
  echo "CornerRadius" >> .git/info/sparse-checkout
  cat ./.git/info/sparse-checkout 
  git pull origin  master 


免責聲明!

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



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