我是一个存储库的贡献者,偶尔会发布图像。图片确实不是必需的,但其他贡献者将继续add
and push
他们到存储库。我想表演pull
忽略图像文件后缀的操作,例如*.png
。 git 目录占用了太多空间,我真的不需要拉这些图像文件。
我怎能不pull
图像文件,但得到一切 else?
您可以使用sparse-checkout
稀疏地填充您的工作目录。sparse-checkout
利用skip-worktree http://git-scm.com/docs/git-update-index#_skip_worktree_bit这使得 git 假设你的工作树中的文件无论如何都是最新的。
对于以下内容,我假设您当前位于存储库的根目录中并且有一个干净的工作树(git stash
e.g.).
首先你必须启用sparse-checkout
using git config core.sparsecheckout true
;之后,您可以定义在结帐时要“忽略”的所有模式.git/info/sparse-checkout
.
语法与a中的相同.gitignore
文件,区别在于您定义了所有文件想要结账不是你想忽略的人。
假设您想避免检查所有png
您的存储库中的文件,然后您的sparse-checkout
文件可能如下所示:
* # Include everything
!*.png # Flag png files with the 'skip-worktree' bit
如果您想应用sparse-checkout
到您当前的工作目录,您必须执行read-tree https://www.kernel.org/pub/software/scm/git/docs/git-read-tree.html之后命令。
git read-tree -m -u HEAD
之后,您可以像往常一样继续使用存储库,而工作树中不会出现“忽略”的文件。
TL;DR:
- 启用
sparse-checkout
: git config core.sparsecheckout true
- 定义一个
sparse-checkout
文件下.git/info/
包含您想要的文件模式include
- 更新您的工作树
git read-tree -m -u HEAD
您可以阅读更多内容sparse-checkout
在官方文档中git read-tree https://www.kernel.org/pub/software/scm/git/docs/git-read-tree.html#_sparse_checkout.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)