1. 什么是gitignore
在学习使用 Git 的时候,很多人都会遇到一个问题,就是在使用 Git 进行版本控制的过程中,有很多文件我们并不需要纳入 Git 的管理中,比如一些临时文件或者是编译过程中产生的中间文件等,这些文件不仅会占用存储空间,而且很可能会误导 Git 后续的版本控制,导致仓库出现各种问题。
这时候我们就需要使用 .gitignore,.gitignore 文件的作用就是告诉 Git 哪些文件不需要进行版本控制,以保证我们的代码库更加干净、整洁。
2. 创建 .gitignore 文件
2.1 手动创建
创建 .gitignore 文件非常简单,只需要在项目根目录下新建一个名为 .gitignore 的文件即可。在这个文件中,我们可以列出要忽略的文件的清单,文件名一般就是对应文件路径下的文件名。
touch .gitignore
然后通过编辑器进行编辑就好了,例如我不希望提交.idea的文件夹以及一些常见的临时文件,文件内容可以写成这样:
/.idea
*.iml
*.log
.DS_Store
其中斜杠 / 表示忽略.gitignore 文件所在目录下的.idea 文件夹,星号 * 表示忽略所有的.iml 和.log 文件。在 Mac 系统中,.DS_Store 文件是系统自动创建的,不需要进行版本控制。
2.2 通过命令行
我们也可以通过 Git 命令行工具来创建 .gitignore 文件,例如使用 echo 命令:
echo '.idea
*.iml
*.log
.DS_Store' > .gitignore
3. .gitignore 规则
在使用 .gitignore 文件的时候,需要注意以下几点。
3.1 基本语法
.gitignore 文件中每一行的内容为一条忽略规则。在忽略规则中,可以使用以下基本语法:
# 开头的行为注释
空行会被忽略掉
可以使用通配符 * ,比如 *.log 表示忽略所有以 .log 结尾的文件
可以使用斜杠 / 指定目录,比如 /logs 表示忽略 logs 目录下的文件
可以使用逆向感叹号 ! 将某个忽略规则排除在外,比如 !/logs/access.log 表示不忽略 logs 目录下的 access.log 文件
3.2 常见用法
一般来说,我们在 .gitignore 文件中添加以下内容:
忽略编译中间件文件
*.o
*.obj
*.exe
*.dll
*.so
*.dylib
*.pdb
*.swp
*.class
*.psd
忽略压缩文件
*.tar.gz
*.tgz
*.tar
*.zip
*.rar
*.7z
忽略日志和临时文件
*.log
*.bak
*.cache
*.tmp
*.temp
*.pid
*.pidlock
忽略系统文件
*.DS_Store
*.Spotlight-V100
*.Trashes
4. .gitignore 文件的使用
4.1 生效方式
在 .gitignore 文件中添加规则之后,新的规则并不会立即生效,需要在 git add 或者 git commit 的时候才会生效。这是因为 Git 的设计理念是尽可能的不自作聪明,不对用户进行任何预设的自动操作。
4.2 强制添加被忽略的文件
有时候我们需要强制添加被忽略的文件,可以使用 -f 或 --force 参数,加上 -f 参数就可以强制添加文件了。
git add -f file_name
4.3 查看被忽略的文件
有时候我们需要查看哪些文件已经被写入了 .gitignore 文件,Git 提供了一个 --ignored 参数,可以显示被忽略的文件。
git status --ignored
5. 总结
.gitignore 文件是 Git 中非常重要的一个概念,可以帮助我们组织 Git 代码仓库,保持代码仓库的清洁,避免一些意外的问题。
在实际开发中,我们可以根据具体的项目需要,对 .gitignore 文件进行不同方式的维护,例如将 .gitignore 文件集成到项目的文档中,方便开发人员查看。