gitignore文件 上传忽略的使用

gitignore 说明

在使用git的过程中,一般我们总会有些文件无需纳入git的管理,也不希望它们总出现在未跟踪文件列表,这些文件通常是日志文件、临时文件、编译产生的中间文件、工具自动生成的文件等等。

此时我们可以创建一个名为.gitignore的文件,列出要忽略的文件模式,Git 会根据这些模式规则来判断是否将文件添加到版本控制中。

注意:在 windows 下可以创建文件名为.gitignore.,保存之后系统会自动重命名为.gitignore

格式规范
  • 所有空行或者以注释符号 # 开头的行都会被 Git 忽略
  • 可以使用标准的 glob 模式匹配
  • 匹配模式最后跟斜杠(/)说明要忽略的是目录
  • 要忽略指定模式以外的文件或目录,可以在模式前加上感叹号(!)进行取反

glob 模式

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

“*“:星号匹配零个或多个任意字符

[]:匹配任何一个列在方括号中的字符,如[ab]匹配 a 或者匹配 b

“?”:问号匹配一个任意字符

[n-m]:匹配所有在这两个字符范围内的字符,如[0-9]表示匹配所有 0 到 9 的数字

匹配示例

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 等

=> *node_modules/ 忽略所有的 node_modules 无论它在哪

定义全局的.gitignore 文件

除了可以在项目中定义.gitignore文件外,还可以设置全局的.gitignore文件来管理所有 Git 项目的行为。

这种方式在不同的项目开发者之间是不共享的,是属于项目之上 Git 应用级别的行为。

可以在任意目录下创建相应的.gitignore文件,然后再使用以下命令配置 Git

git config –global core.excludesfile ~/.gitignore

.gitignore 规则不生效

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

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

1
2
3
git rm-r--cached.
gitadd.
git commit-m"msg"

1

2

3

java 开发通用模版
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#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.d

1


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!