Gitignore 文件详解

在使用git的过程中,一般我们总会有些文件无需纳入git的管理,也不希望它们总出现在未跟踪文件列表,这些文件通常是日志文件、临时文件、编译产生的中间文件、工具自动生成的文件等等。此时我们可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式,git会根据这些模式规则来判断是否将文件添加到版本控制中。

格式规范:
  • 所有空行或者以注释符号 # 开头的行都会被git忽略

  • 可以使用标准的glob模式匹配

  • 匹配模式最后跟斜杠(/)说明要忽略的是目录

  • 要忽略指定模式以外的文件或目录,可以在模式前加上感叹号(!)进行取反

glob模式:

所谓的glob模式是指shell所使用的简化了的正则表达式,匹配规则如下:

  • "*":星号匹配零个或多个任意字符
  • []:匹配任何一个列在方括号中的字符,如[ab]匹配a或者匹配b
  • "?":问号匹配一个任意字符
  • [n-m]:匹配所有在这两个字符范围内的字符,如[0-9]表示匹配所有09的数字
匹配示例:
  • logs/:忽略当前路径下的logs目录,包含logs下的所有子目录和文件
  • /logs.txt:忽略根目录下的logs.txt文件
  • *.class:忽略所有后缀为*.class*的文件
  • !/classes/a.class:不忽略classes目录下的a.class文件
  • tmp/*.txt:只忽略tmp目录下的*.txt*文件
  • **/foo:可以忽略*/foo, a/foo, a/b/foo*等
定义全局的*.gitignore*文件:

除了可以在项目中定义*.gitignore文件外,还可以设置全局的.gitignore文件来管理所有git项目的行为。这种方式在不同的项目开发者之间是不共享的,是属于项目之上git应用级别的行为。可以在任意目录下创建相应的.gitignore文件,然后再使用以下命令配置git*:

git config --global core.excludesfile ~/.gitignore
.gitignore规则不生效:

.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改*.gitignore是无效的。所以一定要养成在项目开始就创建.gitignore*文件的习惯。

解决方法就是先把本地缓存删除(改变成未track状态),然后再提交:

git rm -r --cached .
git add .
git commit -m "msg"
java开发通用模版:
#java
*.class

#package file
*.war
*.ear
*.zip
*.tar.gz
*.rar
#maven ignore
target/
build/

#eclipse ignore
.settings/
.project
.classpatch

#Intellij idea
.idea/
/idea/
*.ipr
*.iml
*.iws

# temp file
*.log
*.cache
*.diff
*.patch
*.tmp

# system ignore
.DS_Store
Thumbs.db
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值