gitignore
1. 什么是.gitignore文件?
在使用Git进行版本控制时,项目中有些文件是我们不希望纳入版本控制的。这些文件可能是编译生成的文件、日志文件、配置文件等。为了防止这些文件被误操作或者不小心添加到版本库中,我们可以通过创建一个名为.gitignore的文件,告诉Git忽略这些文件的变动。
2. .gitignore文件的格式
.gitignore文件是一个纯文本文件,每一行表示一个需要忽略的文件或目录。文件路径可以使用通配符和正则表达式进行匹配。下面是.gitignore文件的一些基本规则:
- 使用#符号表示注释,Git会忽略注释行。
- 空行会被忽略。
- 可以使用标准的glob模式匹配文件路径,如
*.txt
表示所有的txt文件,/dir/*.png
表示dir目录下的所有png文件。 - 以斜杠
/
开头表示目录,比如/build/
表示项目根目录下的build目录。 - 以斜杠
/
结尾表示目录,比如logs/
表示项目根目录下的所有以logs为名称开头的目录,比如logs1、logs2。 - 以感叹号
!
开头的行表示不忽略该文件或目录。
3. 创建.gitignore文件
要创建一个.gitignore文件非常简单,只需要在项目根目录下新建一个名为.gitignore的文件即可。可以使用文本编辑器直接创建,也可以使用命令行的方式创建。以下是在命令行中创建.gitignore文件的步骤:
- 打开终端或命令行窗口,进入项目根目录;
- 输入命令
touch .gitignore
,创建.gitignore文件; - 使用文本编辑器编辑.gitignore文件,添加需要忽略的文件或目录。
4. .gitignore的示例
下面是几个常见的.gitignore文件的示例:
- 忽略指定文件类型
- 忽略指定目录
- 忽略指定文件或目录
5. 其他常见用法
除了基本规则外,.gitignore还支持其他几种常见用法。
5.1 按文件类型忽略
通过在.gitignore文件中写入文件类型的通配符,可以忽略某一类型的所有文件。比如下面的规则会忽略所有的编译生成的文件:
5.2 忽略文件夹,但不忽略文件夹下的某些文件
有时候,我们希望忽略某个文件夹,但又希望保留该文件夹下的某些文件。可以使用感叹号!
来表示不忽略该文件或目录。例如,下面这个规则会忽略logs文件夹,但会保留logs文件夹下的info.txt文件:
5.3 忽略某个文件或文件夹中的特定文件
有时候,我们希望忽略某个文件或文件夹中的特定文件,可以在该文件或文件夹的路径之前添加忽略规则。例如,下面这个规则会忽略所有文件夹中的.idea文件夹中的所有文件:
6. 在线工具和常见模板
如果我们不确定要忽略的文件或目录,可以使用一些在线工具来生成.gitignore文件。这些在线工具会根据我们选择的开发环境和项目类型,自动生成.gitignore文件的内容。
常见的在线工具有以下几个:
可以根据自己的需要在这些网站上选择对应的模板,然后将生成的内容复制到.gitignore文件中即可。
7. .gitignore文件的应用
在创建好.gitignore文件后,Git会根据这个文件的规则忽略相应的文件和目录。例如,我们可以使用以下命令查看Git当前忽略的文件和目录:
也可以使用以下命令将已经添加到版本库中的文件从版本控制中移除:
需要注意的是,以上命令只会移除文件在Git追踪范围内的修改,但不会删除本地文件。
8. 总结
.gitignore文件是Git版本控制中的一个重要文件,用于指定Git忽略的文件和目录。通过合理配置.gitignore文件,可以提高开发效率,避免不必要的冲突和错误。在实际开发中,我们可以根据需要定制自己的.gitignore文件,也可以使用在线工具和常见模板来生成.gitignore文件的内容。