60、两种情况说明
- 在项目开始就创建.gitignore文件,将不需要版本管理的文件或文件夹添加进去。
- push到远程仓库后,想把某些目录或文件加入忽略规则,按照上述方法定义后发现并未生效,原因是.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。那么解决方法就是先删除本地缓存(改变成未track状态),然后再提交。
# 删除本地缓存
git rm -r --cached .
git add .
git commit -m 'update .gitignore'
80、忽略正则举例
# 忽略.cache文件夹及文件夹下文件
.cache
# 忽略以.iml结尾的文件
*.iml
# 忽略*.o和*.a文件
*.[oa]
# 忽略*.b和*.B文件,my.b除外
*.[bB]
!my.b
# 忽略dbg文件和dbg目录
dbg
# 只忽略dbg目录,不忽略dbg文件
dbg/
# 只忽略dbg文件,不忽略dbg目录
dbg
!dbg/
# 只忽略当前目录下的dbg文件和目录,子目录的dbg不在忽略范围内
/dbg
# 以'#'开始的行,被视为注释.
* ?:代表任意的一个字符
* *:代表任意数目的字符
* {!ab}:必须不是此类型
* {ab,bb,cx}:代表ab,bb,cx中任一类型即可
* [abc]:代表a,b,c中任一字符即可
* [ ^abc]:代表必须不是a,b,c中任一字符
100、 .gitignore常用
Q.E.D.