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
相关推荐
测试人社区—52722 小时前
破茧成蝶:DevOps流水线测试环节的效能跃迁之路
运维·前端·人工智能·git·测试工具·自动化·devops
码农阿豪2 小时前
用 Rust 构建 Git 提交历史可视化工具
git·elasticsearch·rust
梦想是红队的咸鱼2 小时前
git泄露(一篇文章就够了)
git·web安全
leijmdas3 小时前
git操作命令
大数据·git·elasticsearch
Sleepy MargulisItG3 小时前
Linux 基础开发工具详解(Yum, Vim, GCC, Make, GDB, Git)
linux·git·vim
skywalk816321 小时前
为一个库设置多个远程更新站用于git push,比如gitcode github等
git·github·gitcode
雪碧聊技术21 小时前
银河麒麟安装git
git
_OP_CHEN21 小时前
【Git原理与使用】(一)告别文件混乱!Git 初识:从版本灾难到高效管理的终极方案
linux·运维·git·github·运维开发·版本控制·企业级组件
装不满的克莱因瓶21 小时前
【Java架构 搭建环境篇三】Linux安装Git详细教程
java·linux·运维·服务器·git·架构·centos