我正在尝试使用一些.gitkeep
文件在git repo中建立一个不断增长/缩小的目录层次结构,我希望有效地拥有一个.gitignore
文件,该文件排除给定目录下的所有文件(.gitignore
文件所在的位置除外).gitkeep
文件除外。
目前我(在.gitignore
的rpm目录中):
/*
!.gitignore
!.gitkeep
这不起作用,因为如果忽略.gitkeep
文件所在的目录,我认为第3行将无效。
我见过类似的例子:
application/*
!application/language/
application/language/*
!application/language/gr/
但我希望维护的目录层次结构并不是非常静态,因此维护这个.gitignore文件会很乏味。
我真的希望尽可能简单的.gitignore
文件忽略整个目录(递归)但允许.gitkeep
文件存在于所述目录下的任何位置。这可能吗?
答案 0 :(得分:0)
这是我的示例目录
.
├── app
│ ├── core
│ │ └── .gitkeep
│ ├── lang
│ │ ├── en
│ │ │ └── .gitkeep
│ │ ├── .gitkeep
│ │ ├── gr
│ │ │ ├── deep.txt
│ │ │ └── .gitkeep
│ │ └── more.txt
│ └── something.txt
├── .gitignore
└── .gitkeep
我真的希望尽可能简单的
.gitignore
文件忽略整个目录(递归)
完全忽略.gitignore
*
但允许
.gitkeep
文件存在于所述目录下的任何位置。这可能吗?
没问题,只需强行添加
git add -f app/lang/en/.gitkeep
或者一次性添加所有内容
find . | grep .gitkeep | xargs git add -f
让我们看看
git status --ignored
On branch master Initial commit Changes to be committed: new file: .gitkeep new file: app/core/.gitkeep new file: app/lang/.gitkeep new file: app/lang/en/.gitkeep new file: app/lang/gr/.gitkeep Ignored files: .gitignore app/lang/gr/deep.txt app/lang/more.txt app/something.txt