Java(66):git项目.gitignore的使用
本次做Java接口自动化框架项目,git上传代码的过程中,发现有很多日志,临时文件,编译的文件,项目的本地配置信息都上传到了git仓库,这样其他同事下载下来会多很多文件,这时发现需要设置一些忽略规则,来忽略这些文件的提交,这样上传代码时把这些文件忽略掉不上传到git仓库。
例如:当你使用git add .的时候有没有遇到把你不想提交的文件也添加到了缓存中去?比如项目的本地配置信息,如果你上传到Git中去其他人pull下来的时候就会和他本地的配置有冲突,所以这样的个性化配置文件我们一般不把它推送到git服务器中,但是又为了偷懒每次添加缓存的时候都想用git add .而不是手动一个一个文件添加,该怎么办呢?很简单,git为我们提供了一个.gitignore文件只要在这个文件中申明那些文件你不希望添加到git中去,这样当你使用git add .的时候这些文件就会被自动忽略掉。

使用方法
首先,在你的工作区新建一个名称为.gitignore的文件。 然后,把要忽略的文件名填进去,Git就会自动忽略这些文件。 不需要从头写.gitignore文件,GitHub已经为我们准备了各种配置文件,只需要组合一下就可以使用了。所有配置文件可以直接在线浏览:https://github.com/github/gitignore
忽略规则
在 .gitignore 文件中,每一行的忽略规则的语法如下:
空格不匹配任意文件,可作为分隔符,可用反斜杠转义
#开头的文件标识注释,可以使用反斜杠进行转义
! 开头的模式标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义
/ 结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件
/ 开始的模式匹配项目跟目录
如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录
** 匹配多级目录,可在开始,中间,结束
? 通用匹配单个字符
[] 通用匹配单个字符列表
以下是本次项目配置的:.gitignore
# IntelliJ IDEA # .idea/ /.idea/ */.idea/ *.iws *.iml *.ipr # Eclipse Project files .classpath .project /.settings/ .settings/ # Java class files *.class # Generated files */bin/ */gen/ */out/ ### user ### target/ /target/ /src/logs/ *.zip sdkTest.log #some local files */.DS_Store .DS_Store gradlew gradlew.bat unused.txt
再次提交代码时:
.gitignore只能忽略原来没有被跟踪的文件,因此跟踪过的文件是无法被忽略的。因此在网页上可以看到target等目录的存在。
解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:
git rm -r --cached .
git add .
git commit -m ‘update .gitignore’git push
参考:
https://blog.csdn.net/luhu124541/article/details/82049510
https://github.com/onlynight/ReadmeDemo/tree/master/Readmes/GitIgnore
Git忽略提交规则