git忽略了太多文件

时间:2017-02-20 11:07:05

标签: git version-control gitignore

我有文件结构:

$ 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

3 个答案:

答案 0 :(得分:1)

qq文件夹中,如果它只有ww.gz.gitkeepaa.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等