1. 已track文件如何忽略
-
.gitignore只能忽略未被版本track的文件,如果某些文件已经被纳入版本管理,则修改.gitignore无效
-
解决方法就是先把本地缓存删除,改成未track状态再提交
修改步骤:
- 先将要忽略文件/目录添加到.gitignore文件
vim .gitignore
build/ # 新增要忽略的文件或目录
- 再执行以下命令
git rm -r --cached build/
git add build/
git commit -m "update gitignore file"
git push origin remoteBranch # 可选,如果需要同步到remote
2. .gitignore忽略规则
- 忽略某个目录
xxx/
xxx/*
举例:
build/ # 忽略build目录下所有文件
build/* # 同上
- 忽略多级目录
**/path/to/xxx.txt #
path/to/**/xxx.txt # 中间多级目录
举例:
**/project/file.txt
src/**/*.pb.cc
src/**/*.pb.h
- 忽略某个文件
xxx/fileName
举例:
build/newFile # 忽略build目录下newFile文件
- 忽略特定命名的文件
*.a # 匹配0个或多个字符
?.a # 匹配1个字符
xxx/*.a
举例:
*.a # 忽略所有命名xxx.a的文件,包括当前目录和子目录
xxx/*.a # 忽略xxx目录下所有xxx.a文件
xxx/?.a # 忽略xxx目录下命名为x.a的文件,m.a则忽略, mn.a则不忽略
- 不忽略特定命名的文件
!xxx/ # 不忽略目录
!lib.a # 不忽略lib.a文件
举例:
xxx/*.a # 忽略xxx目录下所有xxx.a文件
!xxx/lib.a # 但不忽略lib.a文件
- 忽略包含单个字符的匹配列表
.[abc] # 匹配括号内的任意字符
.[0-9] # 匹配0到9的数
举例:
*.[oa] # 忽略所有xxx.o和xxx.a文件
注释:.gitignore使用文件相对路径
参考文章:
.gitignore忽略规则
created by shuaixio, 2021.12.27