.gitignore
文件是一个特殊的文本文件,它告诉 Git 哪些文件或目录是可以被忽略的,即不应该被纳入版本控制系统。这主要用于避免一些临时文件、构建输出、系统文件等被提交到仓库中,以保持仓库的干净和管理的简洁性。
.gitignore
文件通常位于 Git 仓库的根目录,但是也可以在仓库中的任何子目录中放置 .gitignore
文件以应用于特定的子目录。Git 会递归地查找并应用所有的 .gitignore
文件。
/
开始:防止递归。/
结尾:指定目录。!
开始:表示例外规则,不忽略此模式匹配的文件。下面是一个典型的 .gitignore
文件示例,展示了如何忽略特定文件和目录:
# 忽略所有 .log 文件
*.log
# 忽略临时文件夹,但不忽略 temp 文件夹下的 .txt 文件
temp/* !temp/*.txt
# 忽略所有 .pdf 文件,但不忽略 doc 文件夹中的 .pdf 文件
*.pdf !doc/*.pdf
# 忽略特定的文件
config.env
# 忽略 build 目录
build/ #
忽略 doc/notes.txt,但不忽略 doc/server/arch/notes.txt
doc/notes.txt
# 忽略 doc 目录下所有 .txt 文件(不递归)
doc/*.txt
# 忽略所有在任意位置的 TODO 文件
TODO
# 忽略一个目录中所有的子目录和文件(递归)
node_modules/
.gitignore
对该文件就不再起作用。如果你想忽略已经被跟踪(tracked)的文件,首先需要使用命令 git rm --cached <file>
将该文件从索引中移除。.gitignore
只能阻止未跟踪的文件被添加到版本控制中,如果其他人的仓库中没有相应的 .gitignore
文件或规则,他们可能会将被忽略的文件添加到仓库中。.gitignore
文件应该被添加到仓库中(使用 git add .gitignore
),这样其他协作者也能应用相同的忽略规则。通过合理设置 .gitignore
文件,你可以确保仅将必要的源代码和资源文件纳入版本控制,而不是项目生成的所有文件,这对于保持项目的整洁和减小仓库的大小非常重要。