git忽略整个文件夹,不包括一个文件

时间:2014-12-16 09:11:12

标签: git

嘿这对我不起作用:

vendor/*
!vendor/predis/
vendor/predis/*
!vendor/predis/predis
vendor/predis/predis/*
!vendor/predis/predis/lib
vendor/predis/predis/lib/*
!vendor/predis/predis/lib/Predis
vendor/predis/predis/lib/Predis/*
!vendor/predis/predis/lib/Predis/Profile
vendor/predis/predis/lib/Predis/Profile/*
!vendor/predis/predis/lib/Predis/Profile/ServerVersion24.php

我在哪里弄错了?

2 个答案:

答案 0 :(得分:1)

您的存储库的实际状态是什么?

我相信你想拥有的只是:

vendor/*

在创建.gitignore文件之前,只需git add vendor/predis/predis/lib/Predis/Profile/ServerVersion24.php。它现在将被跟踪。

创建.gitignore文件(或向其添加上述行)后,vendor目录中的所有未跟踪文件都将被忽略。

[编辑] (有用评论后更正,谢谢!)

请注意,您不能忽略已经跟踪过的文件。如果要这样做,则需要针对要忽略的文件执行命令git update-index --assume-unchanged - 但此更改将在您的存储库本地进行,不会被共享。有关详细信息,请参阅How to ignore files only locally in git?

答案 1 :(得分:0)

使用

创建.gitignore
vendor/*

然后git add -f vendor/predis/predis/lib/Predis/Profile/ServerVersion24.php

-f选项会忽略.gitignore中的规则,因此会跟踪该文件