Git如何Check Out出指定檔案或者資料夾

2021-09-08 12:14:28 字數 838 閱讀 3441

原文:

在進行專案開發的時候,有時候會有這樣的需求那就是:我們只希望從git倉庫裡取指定的檔案或者資料夾出來。在svn裡面,這非常容易實現,因為svn基於檔案方式儲存,而git卻是基於元資料方式分布式儲存檔案資訊的,它會在每一次clone的時候將所有資訊都取回到本地,即相當於在你的機器上生成乙個轉殖版的版本庫。因此在git1.7.0以前,這無法實現,但是幸運的是在git1.7.0以後加入了sparse checkout模式,這使得check out指定檔案或者資料夾成為可能。

具體實現如下:

$mkdir project_folder

$cd project_folder

$git init

$git remote add -f origin

上面的**會幫助你建立乙個空的本地倉庫,同時將遠端git server url加入到git config檔案中。 

接下來,我們在config中允許使用sparse checkout模式:

$git config core.sparsecheckout true

接下來你需要告訴git哪些檔案或者資料夾是你真正想check out的,你可以將它們作為乙個列表儲存在.git/info/sparse-checkout檔案中。 

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

$echo 「resource/css」 >> .git/info/sparse-checkout

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

$git pull origin master

具體您可以參考git的sparse checkout文件: 

git 學習(四)之checkout

檢出命令 git checkout 該命令的實質就是修改head本身的指向,該命令不會影響分支 游標 如master git checkout 5689dc4 這是處於分離頭指標狀態。git checkout b new branch name 建立新的分支 分離頭指標 狀態指的就是head頭指標指...

在 Git 中 Checkout 歷史版本

昨天寫 的時候,誤刪了乙個檔案。今天發現的時候,commit 已經 push 到版本庫了。本想用git reset回退版本,找回檔案後重新提交。但是想起 git 是乙個版本控制系統哎,直接從版本庫里 checkout 出某個檔案的歷史版本不就好了?想法挺好,但是很久沒用這個功能,自己已經不記得具體的...

在 Git 中 Checkout 歷史版本

昨天寫 的時候,誤刪了乙個檔案。今天發現的時候,commit 已經 push 到版本庫了。本想用git reset回退版本,找回檔案後重新提交。但是想起 git 是乙個版本控制系統哎,直接從版本庫里 checkout 出某個檔案的歷史版本不就好了?想法挺好,但是很久沒用這個功能,自己已經不記得具體的...