下面是QtCreator自动生成的gitignore原始文件,通过这个文件来说明gitignore的通配符的用法
其实这个文件用到的知识点只有下面几个:
-
#开头的部分表示注释
-
*~表示忽略所有以~结尾的文件
-
*匹配所有的字符0次或者多次
-
core 表示忽略core文件和文件夹
!core/ 取消忽略core文件加(因此这两行表示只忽略core文件,不忽略core文件夹)
This file is used to ignore files which are generated
----------------------------------------------------------------------------
*~
*.autosave
*.a
*.core
*.moc
*.o
*.obj
*.orig
*.rej
.so
.so.
pch.h.cpp
resource.rc
.qm
.#
.#
core
!core/
tags
.DS_Store
.directory
.debug
Makefile
*.prl
*.app
moc.cpp
ui.h
qrc_.cpp
Thumbs.db
*.res
*.rc
/.qmake.cache
/.qmake.stashqtcreator generated files
.pro.user
CMakeLists.txt.user*xemacs temporary files
*.flc
Vim temporary files
.*.swp
Visual Studio generated files
*.ib_pdb_index
*.idb
*.ilk
*.pdb
*.sln
*.suo
.vcproj
vcproj...user
*.ncb
*.sdf
*.opensdf
*.vcxproj
vcxproj.MinGW generated files
*.Debug
*.ReleasePython byte code
*.pyc
Binaries
--------
*.dll
*.exe
再补充一些查到的
- *表示忽略所有
- */表示忽略所有目录
- 1.txt: 忽略任意目录(当前目录即根目录及其子文件夹)下的1.txt的文件夹或同名文件,例如1.txt,/pojo/1.txt,/pojo/a/1.txt,若是文件夹则该文件夹下的所有内容都会被忽略。
- *.txt: 忽略任意目录(当前目录即根目录及其子文件夹)下的所有以.txt结尾的文件夹或文件,若是文件夹则该文件夹下的所有内容都会被忽略。
- /1.txt:忽略根路径下的1.txt的文件夹或同名文件,若是文件夹则该文件夹下的所有内容都会被忽略。
- /*.txt: 忽略根路径下的所有以.txt结尾的文件夹或文件,若是文件夹则该文件夹下的所有内容都会被忽略,不忽略 /pojo/1.txt。
- pojo/: 忽略目录 pojo下的全部内容;注意,不管是根目录下的/pojo/目录,还是某个目录下的/child/pojo/,以及pojo文件夹里面的全部内容都会被忽略,同时忽略pojo文件夹,以pojo命名的文件不会忽略。
- pojo/*:忽略当前路径下pojo文件夹下的全部内容,pojo文件夹不忽略。
- **/pojo: 忽略任意目录下的pojo文件夹或同名文件,若是文件夹则该文件夹下的所有内容都会被忽略。/pojo,/pojo/1.txt,/a/pojo,/a/pojo/1.txt,a/b/pojo等。
- a/**/b: 忽略当前路径下的以a文件夹为开始,中间可以有0个或任意个目录的b文件夹或同名文件,若是文件夹则该文件夹下的所有内容都会被忽略,a/b,a/x/b,a/x/y/b,a/x/y/b/1.txt等。
- /pojo/*和!/pojo/1.txt: 忽略pojo目录下的所有文件但不忽略pojo目录下的1.txt文件,pojo文件夹不忽略。
注意上面的/pojo/*不能写为/pojo/,否则父目录被前面的规则排除掉了,1.txt文件虽然加了!过滤规则,也不会生效!