现在开源项目越来越多,Git使用越来越方便,用Git的人也越来越多。创建项目的时候,喜欢把日志,临时文件,项目编译的中间文件,引用的类库等等,这时就要设置响应的规则,来忽略这些文件。例如创建一个C#项目,项目下面会有.vs,bin,obj等,这些都是不需要提交的需要忽略的,如何忽略呢?其实很简单,增加.gitignore文件就可以了,下面将详细说明C#项目的忽视规则。
创建Git项目
创建git项目,创建的时候有个.gitignore的选项,根据自己的需要选择需要忽视的文件,例如:java,python等,C#的项目选择VisualStudio,因为创建的都是VS项目,这里面有需要C#项目所忽略的设置。创建完项目之后,项目下面就有个.gitignore文件,这个文件是可以修改的。
忽视文件
例如:忽视后缀是.suo,.user的文件,*正式所有
忽视文件夹
[Dd]用的是正则,匹配大小写d,两个**表示匹配任意中间目录
- [Dd]ebug/
- [Dd]ebugPublic/
- [Rr]elease/
- [Rr]eleases/
- **/[Pp]ackages/*
Git忽略文件的原则
1. 编译生成的文件,例如:dll,等
2. 配置文件,敏感的信息(密码,口令)
3. 项目工具生成的文件,例如:引用Nuget时生成的packages等
4. 项目测试的文件,日志文件等。
.gitignore忽略规则的匹配语法
1. “#"开头,是git上的注释说明
2. 以"/"开头表示根目录,其他位置的“/”表示的是忽视目录
3.“*”匹配多个字符,“**”匹配任意中间目录
4.“[]”匹配中括号中的字符
5.“!”表示不忽视,即:如果忽视某些文件,可以用!让这些文件在启用,如果文件夹的父目录被忽略了,那么这个文件在启用,也就没有什么用了。
注意:git对于.ignore配置文件是从上到下进行规则匹配的,如果前面的规则匹配的范围更大,则后面的规则将不会生效;git上的忽视文件.ignore要在创建git的时候创建,如果是之后创建的,已经push过的,在忽视将不起作用,因为git已经开始管理这些文件了。
.gitignore查看忽视文件和文件夹
- git check-ignore -v bin
- .gitignore:23:[Bb]in/ bin
查看忽视文件夹,可以看到,第23行的忽视规则把bin给忽视掉了,如果运行指令,没有返回值则表示没有忽视此文件或者文件夹的规则。
git忽视已经上传的文件解决办法
在使用git的时候,创建了一个.gitignore文件,但是后来发现有一个文件已经上传了,没有写忽视规则,但是又想这个文件【本地保存】,【远程删除】,例如:忽视已经上传的文件【test.txt】或者文件夹,用git rm -r –cached directory
1. git rm -r --cached test.txt
2. commit和push
操作之后,你可以看到本地文件还在,远程的已经删除了
VS项目忽视文件(C#、.NET,MVC等)