Git如何檢出指定目錄或文件

系統版本:Window 10,Git 版本:2.7.1java

對於大型 Git 倉庫,每次執行 Git 命令,都須要通過漫長的等待,特別是要常常執行的 git status 命令。下面是一個例子...git

圖片加載中...

從 1.7.0 開始,Git 引入 sparse checkout(稀疏檢出) 機制,稀疏檢出機制容許只檢出指定目錄或者文件,這在大型 Git 倉庫中,將大幅度縮短 Git 執行命令的時間。github

要想只檢出指定的目錄或文件,須要在 .git/info/sparse-checkout 文件中指定出目錄或文件的路徑,下面將以一個具體例子介紹 如何使用 Git 的 sparse checkoutspa

準備遠程倉庫

初始化一個倉庫,目錄結構以下圖所示:code

圖片加載中...

根目錄下有 2 個子目錄,以及一個 LICENSE 文件和 README.md 文件,每一個子目錄中各有 3 個。
將其推送到Github上新建的一個倉庫,地址是 git@github.com:liangzai-cool/git-sparse-checkout-study.git圖片

爲Git配置稀疏檢出

換一個目錄,再初始化一個 Git 倉庫,以便用稀疏檢出的方式,檢出剛纔在 Github 上新建的 git-sparse-checkout-study 倉庫:get

圖片加載中...

使用 git config core.sparseCheckout true 命令開啓 Git 稀疏檢出模式。而後編輯該倉庫目錄下的 .git/info/sparse-checkout 文件,指定檢出規則。這裏只檢出 git-sparse-checkout-study 倉庫中的 dir1 目錄下的全部文件和 根目錄下的 README.md 文件:it

圖片加載中...

檢出

添加遠程倉庫地址,並檢出:class

圖片加載中...

能夠看到,Git 只檢出了根目錄下的 README.md 文件和 dir1 目錄。配置

若是此時須要再檢出,根目錄下的 dir2 目錄,則須要將其加入到 .git/info/sparse-checkout 文件中。參照下圖中的方案:

圖片加載中...

關閉稀疏檢出

和上面檢出 dir2 時相似:

圖片加載中...

能夠看到全部文件都已顯示出來了。
注意這裏的 echo 命令:

echo "/*" > .git/info/sparse-checkout

最後不要忘了配置 Git 的 core.sparseCheckoutfalse 以及移除 .git/info/sparse-checkout 文件。

.git/info/sparse-checkout 中使用和 .gitignore 相同的匹配模式,例如 非匹配 !/dir2/* 以及 /*.java 等。

原文連接http://xueliang.org/article/detail/20160819001000543

相關文章
相關標籤/搜索