Git版本控制——.gitignore文件

1. 提交多个文件

git add -A 提交所有变化

git add -u 提交被修改(modified)和被删除(deleted)文件,不包括新文件(new)

git add . 提交新文件(new)和被修改(modified)文件,不包括被删除(deleted)文件

2. 格式规范

(1)所有空行或者以注释符号 # 开头的行都会被 Git 忽略

(2)可以使用标准的 glob 模式匹配

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

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

3. 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等

4. .gitignore案例使用

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

此时可以创建一个名为 .gitignore 的文件,列出要忽略的文件模式,Git会根据这些模式规则来判断是否将文件添加到版本控制中。
注意:在windows下可以创建文件名为.gitignore.,保存之后系统会自动重命名为 .gitignore

(1)创建.gitignore

在需要创建 .gitignore 文件的文件夹, 右键选择Git Bash 进入命令行,进入项目所在目录。输入 touch .gitignore 在文件夹就生成了一个".gitignore"文件

(2)编写文件测试

创建两个文件,查看状态我们发现testclass.class不在工作区,提交也不会进入暂存区

5. 定义全局的.gitignore

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

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

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

git config --global core.excludesfile ~/.gitignore

6. .gitignore规则不生效

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

7. 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
相关推荐
H Journey7 小时前
Git 教程
git
蜜汁小强15 小时前
macOS 上的git代理配置在哪里
git·macos·代理模式·proxy模式
钟佩颖16 小时前
Git .
git
Zhongyi_Li1 天前
git merge的一些记录
git
沛沛老爹1 天前
Web开发者转型AI:Agent Skills版本控制与管理实战——从Git到AI技能仓库
java·前端·人工智能·git·架构·rag
子琦啊1 天前
极速移除 Git 历史中的大文件,告别 git filter-branch太慢的问题
git
儒雅的晴天1 天前
git笔记
笔记·git
Ama_tor1 天前
git bash|下载、安装与配置(Windows11)
git
惜__缘1 天前
Git项目迁移的坑点
git
阿杰 AJie2 天前
Git 分支与多人开发使用指南(Gitee + 本地 Git)
git·elasticsearch·gitee