您可以使用sparse checkout 将node_modules 目录的已提交内容从工作树中排除。正如文档所说:
“稀疏检出”允许稀疏地填充工作目录。它使用skip-worktree 位告诉 Git 工作目录中的文件是否值得查看。
这里是你如何使用它。首先,启用sparseCheckout 选项:
git config core.sparseCheckout true
然后,在.git/info/sparse-checkout 文件中添加node_modules 路径作为否定:
echo -e "/*\n!node_modules" >> .git/info/sparse-checkout
这将创建一个名为 sparse-checkout 的文件,其中包含:
/*
!node_modules
这实际上意味着忽略 node_modules 在将提交的树读入工作目录时目录。
如果您以后想再次包含node_modules 目录(即从其文件中删除skip-worktree bit),您必须修改sparse-checkout 文件以仅包含/*——即“包含所有路径”——并使用git read-tree 更新您的工作目录:
echo "/*" > .git/info/sparse-checkout
git read-tree -mu HEAD
然后,您可以通过将其配置变量设置为 false 来完全禁用稀疏结帐:
git config core.sparseCheckout false
请注意,sparse checkout 最初是在 Git 1.7.0 中引入的。