.gitignore 是一个文本文件,用于告诉 Git 哪些文件或目录应该被忽略,不纳入版本控制。它通常位于项目的根目录中。通过在 .gitignore 文件中列出文件或目录的名称,Git 在执行操作时会自动忽略这些文件或目录。
如何使用 .gitignore
-
创建
.gitignore文件:在项目的根目录下创建一个名为.gitignore的文件。 -
添加忽略规则:在
.gitignore文件中,添加需要忽略的文件或目录的路径。例如:# 忽略 node_modules 目录 node_modules/ # 忽略所有 .log 文件 *.log # 忽略 dist 目录 dist/ -
提交
.gitignore文件:将.gitignore文件添加到版本控制中,以便其他开发者在克隆项目时也能使用相同的忽略规则。
常见用法
- 忽略特定文件类型:使用通配符
*来忽略特定类型的文件,例如*.tmp忽略所有.tmp文件。 - 忽略特定目录:在目录名后加上斜杠
/,例如build/忽略build目录。 - 忽略特定文件:直接写出文件名,例如
secret.txt忽略secret.txt文件。
.gitignore 文件是管理项目中不需要版本控制的文件的一个重要工具,帮助保持代码库的整洁和高效。
常见问题
如果你的
.gitignore文件中已经添加了package-lock.json和yarn.lock,但它们仍然显示在 Git 的 commit 区域,可能有以下几种原因:
-
.gitignore的位置不是根目录: 确保.gitignore文件位于项目的根目录,且文件命名准确(确保没有意外的拼写错误或扩展名问题)。 -
添加.gitignore配置之前有的文件已经被跟踪: 如果在添加这些规则配置到
.gitignore之前,文件已经被 Git 开始跟踪,那么.gitignore不能控制这些已经被跟踪的文件。你可以通过以下命令停止跟踪这些文件:git rm --cached package-lock.json git rm --cached yarn.lock这条命令会从 Git 的跟踪中移除这些文件,但不会删除它们在文件系统中的实际存在。移除后,提交更改:
git commit -m "Stop tracking package-lock.json and yarn.lock" -
缓存问题: 有时候 Git 可能会出现缓存问题。如果确认
.gitignore包含这些文件并且文件没有被跟踪,尝试清理 Git 的缓存:git rm -r --cached . git add .这将移除所有被跟踪的文件缓存重新添加未被跟踪的文件。请注意,这会让你重新添加所有文件,因此在执行之前确保你的工作区干净(没有未暂存的更改)。
-
有其他
.gitignore覆盖了你的: 确保项目中没有其他的全局的.gitignore设置覆盖了你项目中的设置。可以运行以下命令查看全局.gitignore的路径:git config --get core.excludesfile -
IDE/编辑器影响: 有时候 IDE 或版本控制工具可能会展示不一样的状态,确保你在命令行工具中检查 Git 状态,也就是运行
git status,看看显示的内容是否正常。
下面是.gitignore一般配置(拿走不谢)
# Vue、React build output
dist/
build/
node_modules/
# Maven
target/
!.mvn/wrapper/maven-wrapper.jar
.flattened-pom.xml
# IntelliJ IDEA
.idea/
*.iws
*.iml
*.ipr
# Eclipse
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
# NetBeans
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
# Logs
logs
*.log
# OS Specific Files
.DS_Store
# Editor Directories and Files
.vscode/
!.vscode/extensions.json
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# Dependency Directories
node_modules
dist-ssr
# Lock Files
package-lock.json
yarn.lock
# Local Environment Files
*.local