[英]git ignore everything except files in certain subdirectories
我刚刚创建了一个像这样的文件夹:
.
├── config
│ ├── subfolder
│ │ └── config.xml
│ └── subfolder2
│ └── config.xml
├── .gitignore
├── log2.txt
└── log.txt
我在此文件夹中输入了git init
。 我想忽略除.gitignore
和所有config.xml
文件之外的所有内容。
这些是我尝试过的.gitignore
:
1:
*
!.gitignore
!**/config.xml
2:
*
!.gitignore
!config/*/config.xml
3:
*
!.gitignore
!**/config.xml
git status
显示.gitignore
是唯一具有以上任何gitignore设置的未跟踪文件。
我也希望所有config.xml
文件也位于未跟踪的文件列表中。
我已经阅读了atlassian的教程。 而且我认为也许是以下规则使我无法忽略除子目录下的某些文件以外的所有内容。
我在Windows 10操作系统中使用git version 2.11.0.windows.1
。 有人知道为什么我的.gitignore
文件无法按我期望的方式工作吗?
克隆了您的仓库。
有了这个.gitignore:
*
!.gitignore
!*/*/config.xml
它忽略了.gitignore和config文件之外的所有内容:
On branch master
Your branch is up-to-date with 'origin/master'.
Changes not staged for commit:
(use "git add <file>..." to update what will be committed)
(use "git checkout -- <file>..." to discard changes in working directory)
modified: .gitignore
modified: config/subfolder/config.xml
no changes added to commit (use "git add" and/or "git commit -a")
.
├── config
│ ├── subfolder
│ │ ├── config.xml
│ │ └── ignoringthis
│ └── subfolder2
│ └── config.xml
├── log3.txt
└── newdir
那是你要的吗?
多亏了torek的链接 ,我终于提出了以下解决方案:
/**
!/**/
!.gitignore
!**/config.xml
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.