git - 排除 git 中的所有内容,除了
问题描述
我有以下文件结构,我想用 git 跟踪和它们的子文件夹,并排除其他所有内容.ddd/zzz
。.aaa
.aaa/
.aaa/file.txt
.bbb/
.bbb/www
.bbb/www/www
.bbb/www/www/file.txt
.ccc/
.ddd/
.ddd/zzz
.ddd/zzz/file.txt
.eee/
我的.gitignore
文件中有这个:
*
!.aaa/
!.ddd/zzz/
.gitignore
然而,当我初始化存储库时,我什么也没有提交。
我如何排除除这两个目录及其内容之外的所有内容?
解决方案
在尝试了一些配置后,我遇到了解决方案。有我的回购:
# tree -a
.
├── .git/*
├── .gitignore
├── a
│ └── should-be-taken.txt
├── b
│ └── should-be-ignored.txt
└── recursive
├── folder
│ └── should-be-taken.txt
└── no.txt
我有一个解决方案:
# cat .gitignore
*
!/a
!/a/**
!/recursive
!/recursive/folder
!/recursive/folder/**
!.gitignore
关键是明确否定您不希望在.gitignore文件中忽略的整个文件夹路径。然后**
匹配里面的所有东西,cf Git 文档:
尾随的 "
/**
" 匹配里面的所有内容。例如,“abc/**
”匹配目录“abc
”内的所有文件,相对于.gitignore
文件的位置,具有无限深度。
编辑:即使我的解决方案仍然有效,gitignore 文档示例中还显示了另一种方法:
排除除特定目录之外的所有内容的示例
foo/bar
(注意/*
- 没有斜杠,通配符也将排除 内的所有内容foo/bar
):# exclude everything except directory foo/bar /* !/foo /foo/* !/foo/bar
推荐阅读
- react-native - 通过 api 响应从由 redux 操作初始化的状态映射
- css - 表格/卡片填满屏幕的剩余部分
- python - 将年份字符串转换为日期时间对象
- qt - Qt C++ 类图?
- html - z 索引问题。无法让部分漂浮在聊天小部件上方
- python - 彩色同构图的散列函数
- ios - 单击搜索栏时如何导航到另一个视图控制器
- .net - 为什么依赖库中的本机 dll 不包含在构建输出中?
- javascript - Is there a way to loop inside a variable which contains html
- javascript - 如何打印 N 号 每次单击时数组的元素数