我有一个项目,其中有两个我想进行版本控制的目录。这些目录旁边是临时生成文件。有机会正确设置gitignore吗?似乎git仍在抱怨项目规模
这是我的目录:
./
+--- source1 (1000 files)
| +---headers
| +---sources
| +---temp_project_files (1000 files don't belong to git)
|
+--- source2 (1000 files)
| +---headers
| +---sources
| +---temp_project_files (1000 files don't belong to git)
|
+--- temp_build (80.000) files
|
|
+--- .gitignore
我的gitignore文件包含以下内容:
!/source1/**/*.cpp
!/source1/**/*.h
!/source2/**/*.cpp
!/source2/**/*.h
所以我过滤掉了* .cpp和* .h文件以外的所有内容,仍然git告诉我:
> The git repository at /path/to/dir/ has too many active changes, only a subset of Git features will be enabled.
原因是,git似乎以untracked
的身份从gitignore中检入了所有文件。我在这里做什么错了?
答案 0 :(得分:3)
如果.gitignore
文件中未处理,则目录和文件会自动设置为已跟踪。因此,您需要专门添加要忽略的文件夹,而不是您不想忽略的文件夹。如果您不想忽略的目录位于您已经忽略的目录中,则可以添加它们。因此,您可能希望在.gitignore
文件中使用它。
temp_build/
source1/temp_project_files/
source2/temp_project_files/
如果您将文件夹添加到.gitignore
,它将自动忽略该文件夹中的所有文件和文件夹。
另外,您得到的错误可能与目录的大小无关,而是与您一次进行所有更改有关。
注意:如果您真的想按照自己的方式做事,请在您的.gitignore
顶部加一个*,默认情况下它将忽略所有文件和文件夹。
答案 1 :(得分:2)
为什么不忽略整个目录,在.gitignore
中只需要两个条目
temp_project_files/
temp_build/