git项目中的.gitignore
文件的作用是:
忽略项目中的某些文件/文件夹,不把某些本地仓库的文件/文件夹提交到远程的版本库中
通过git init
建立的项目或者git clone
下来的项目一般都会有这个文件; 其他情况下需自己手工建立此文件
匹配规则为:每行保存一个匹配规则, 同时使用#
作为注释标识
*.a
# 忽略所有.a
结尾的文件
!lib.a
#lib.a
不忽略
/tools
# 仅仅忽略项目根目录下的 tools 文件夹,不包括 subdir/tools
test/
# 忽略 根目录下的test/
目录下的所有文件
examples/*.txt
# 只忽略examples/*.txt
但不忽略examples/
目录下子目录中的*.txt
文件
另外的一些细节情况:
忽略一个特定的文件:/filename.extension
1.忽略所有同名的文件:filename.extension
2.忽略一个特定的目录:folder/ (这会连同其下所有子目录及文件都被忽略)
3.但是排除一个特定的模式:(在 3 的基础上)!folder/some/important/filename.extension4.忽略指定目录下所有子目录下的特定文件:folder/**/filename.extension
5.同上,但是只匹配文件扩展名:folder/*/.extension
6.同上,但是只匹配特定的目录:folder/**/tmp/
特殊情况
上述情况是项目刚刚建立时使用. 如果一个项目已经建立好, 并且已经push过文件了, 那么此时想把某些目录或文件加入忽略规则,需要将当前目录的git缓存情况才能生效,否则新忽略的文件还是会被上传上去. 原因是:
.gitignore
只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore
是无效的。
方法如下:(cached前面是两个横线“-”)
git rm -r —cached .
git add .
git commit -m ‘update .gitignore’