在我们的项目当中,经常有一些文件我们并不希望被放到仓库当中,比如:IDE配置文件、编译输出文件、操作系统临时文件。这对于公共仓库来讲是不必要的文件。
又或者,有些文件,我们不希望被其他成员修改,比如.husky这类脚本文件或者是某些配置文件,在团队配置好了以后,就不再被其他成员所修改。
那么我们要怎么让git去忽略这些文件呢。
先简单说一下结论,在 Git 中可以通过在 .gitignore
文件中指定要忽略的文件和目录来让 Git 忽略对某些文件的管理。
以下是具体步骤:
一、创建.gitignore
文件
- 在项目的根目录下创建一个名为
.gitignore
的文件。如果项目已经在版本控制下,确保将这个文件添加到版本库中(通常在首次创建后需要执行git add.gitignore
)。
二、指定要忽略的文件和目录
-
直接文件名
- 例如,如果要忽略名为
temp.txt
的文件,可以在.gitignore
中添加一行:temp.txt
。
- 例如,如果要忽略名为
-
通配符
- 可以使用通配符来匹配一类文件。例如,要忽略所有扩展名为
.log
的文件,可以添加:*.log
。 - 要忽略以
temp
开头的任何文件,可以使用:temp*
。
- 可以使用通配符来匹配一类文件。例如,要忽略所有扩展名为
-
目录
- 要忽略一个名为
logs
的目录及其下的所有内容,可以添加:logs/
。 - 如果只想忽略目录中的特定文件类型,例如
logs
目录下的所有.log
文件,可以使用:logs/*.log
。
- 要忽略一个名为
-
忽略已经被跟踪的文件
- 如果某些文件已经被 Git 跟踪,但现在希望 Git 忽略它们,可以使用以下命令:
这个命令用于忽略单个文件
git rm --cached filename
如果需要忽略目录以及目录下的所有文件,可以使用:
git rm -r filename
三、示例 .gitignore
文件内容
以下是一个可能的 .gitignore
文件内容示例:
# 忽略所有.log 文件
*.log
# 忽略临时文件
temp*
# 忽略特定目录及其内容
build/ dist/
# 忽略某些配置文件的副本
config_copy.ini