如何忽略Git中的几个目录

时间:2013-12-31 07:55:04

标签: git

我要将几个文件上传到社区Git项目,我只应该在未经许可的情况下上传某些文件,然后在我需要更改它们时请求允许上传所有其他文件。所以,我希望Git忽略所有我无权自由更改的目录,这样我就可以自由上传我想要的内容,然后如果需要,上传我改变的目录,我不会获得许可。

这样做最好的方法是什么?

1 个答案:

答案 0 :(得分:2)

如果这些目录(您无权直接更改)已经版本化,我建议不要将.gitignore解决方案作为:

  • 您有可能添加,提交并推送.gitignore(远程仓库不想更改)
  • 如果没有从索引(git rm -r --cached /folders/you/dont/have/permission)中删除这些文件夹,它将无法正常工作,这反过来又有提交和推送的风险(远程仓库需要这些文件夹!)

最好应用本地解决方案(不会有被误推的风险)。

在添加任何内容之前,执行(对于您没有权限的文件夹)a:

git update-index --skip-worktree -- /folder

请参阅“using git skip-worktree to disable file updates” 您的git statusgit addgit commit应忽略已经版本化的文件夹,即使您已在其中修改/添加了文件。

您可以使用以下内容撤消本地更改:

git update-index --no-skip-worktree -- /folder