我的项目中有一个.gitignore文件,其中包含以下规则:
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
[Xx]64/
[Xx]86/
[Bb]uild/
bld/
[Bb]in/
[Oo]bj/
我的应用程序中有一个使用关键字“Build”的特定文件夹,但我希望将此特定文件夹及其文件包含在我的提交中。
我想要包含的路径如下:
Views/Build/Index.cshtml
Views/Build/Create.cshtml
我尝试了以下但是它无效:
!Views/[Bb]uild/*
我做错了什么?
我很难找到问题的答案,并希望有人可以提供帮助。
答案 0 :(得分:1)
将!Views/[Bb]uild
添加到底部的.gitignore文件中(在其他规则之后)。我用以下文件对此进行了测试:
# Build results
[Dd]ebug/
[Dd]ebugPublic/
[Rr]elease/
[Rr]eleases/
[Xx]64/
[Xx]86/
[Bb]uild/
bld/
[Bb]in/
[Oo]bj/
!Views/[Bb]uild
您和我的尝试之间的区别在于您添加了!Views/[Bb]uild/*
并添加了!Views/[Bb]uild
。
我认为!Views/[Bb]uild/*
不起作用的原因是因为它说'排除'Views / Build'下面的所有内容被忽略了“,但这本身没有效果,因为目录本身仍然被忽略。我的规则排除了目录本身(以及扩展名下的所有内容)。
修改强>
这是我在以下测试过的目录的树结构:
$ tree -a -I .git
.
├── .gitignore
├── hello.cs
├── temp.py
├── temp.txt
├── temp.vi
└── Views
└── Build
├── Create.cshtml
└── Index.cshtml
这是git status
的输出:
$ git status
On branch master
Initial commit
Untracked files:
(use "git add <file>..." to include in what will be committed)
.gitignore
Views/
hello.cs
temp.py
temp.txt
temp.vi