我有文件结构:
$ ls xtest/
arch.gz.keep
raq.gz.keep
qq
$ ls xtest/qq/
ww.gz.gitkeep
aa.keep
我的.gitignore
/xtest/*
*.sql
*.gz
*.zip
*.log
!*.keep
!*.gitkeep
!*.dist
!*.dist.*
git status
文件未跟踪:
xtest/.gitkeep
xtest/.keep
xtest/arch.gz.keep
对我来说,我还需要没有跟踪:
xtest/qq/ww.gz.gitkeep
xtest/qq/aa.keep
git --version
1.9.1
on Ubuntu 14.04
答案 0 :(得分:1)
在qq
文件夹中,如果它只有ww.gz.gitkeep
和aa.keep
,或者您希望qq
文件夹中的所有文件都由git控制,请删除{{1在/xtest/*
中,.gitignore
看起来像是:
.gitignore
答案 1 :(得分:1)
通过/xtest/*
中的.gitignore
,您指示Git忽略xtest/qq
。它永远不会下降到此目录中,并且永远不会注意到有一些文件匹配*.keep
您不想忽略。添加其中一个,以便不忽略xtest/qq
:
!/xtest/qq/
!/xtest/*/
后者取消忽略xtest
中的所有目录,前者仅qq
。
答案 2 :(得分:0)
我找到了解决方案,重点是我想忽略每个文件/路径 从dir&x 39; xtest'开始 - > ' / XTEST /' 除了放在/ xtest /中任何位置的一些文件 How do I add files without dots in them (all extension-less files) to the gitignore file?
也许对某人有帮助:
要忽略dir /xtest/
中的任何文件,但不能忽略任何目录而不是某些特定文件:
/xtest/**/*
!/xtest/**/*/
/xtest/**/cache/*
*.sql
*.gz
*.zip
*.log
!*.keep
!*.gitkeep
!*.dist
!*.dist.*
缓存/的子目录将始终被忽略,即使有* .keep,* .gitkeep等,但在第一个深度中不会被忽略到缓存/并且几乎所有文件都将在其他目录中被忽略(进入/ xtest /)除了* .keep,* .gitkeep等