当前位置: 代码网 > it编程>编程语言>其他编程 > git如何忽略指定文件以及gitignore相关知识

git如何忽略指定文件以及gitignore相关知识

2024年08月02日 其他编程 我要评论
本文主要介绍了git中如何忽略指定文件,包括已经commit了的文件。解释了gitignore文件的写法以及提供了常见的gitignore模版。

git如何忽略指定文件

在平常写代码使用git的过程中,我们项目有些文件是不适合提交到仓库的,因此需要让git忽略这些文件, 解除对这些文件的跟踪。文末附录部分会附上一些常见的前后端需要忽略的文件。下面开始讲解如何操作:

一、修改.gitignore文件

  1. 创建.gitignore文件
    一般在创建项目的时候会自动在项目根目录创建.gitignore文件,正如其名称,这个文件就是用来指定忽略跟踪哪些文件的。如果没有这个文件,就在仓库的根目录创建一个。
  2. 将需要的解除跟踪的文件或者文件夹加入.gitignore文件中
    比如项目中node_modules文件夹不需要追踪,那么就可以在.gitignore文件中加入node_modules即可。
  3. 如果文件已经commit了,那么还需要删除在git中的记录,输入如下命令
    git rm --cached 你的文件
    
    比如删除src/main/resources/application-prod.yml文件的跟踪:
    git rm --cached src/main/resources/application-prod.yml
    
    然后提交修改即可:
    git add .gitignore
    git commit -m "更新.gitignore以忽略特定文件"
    

二、详解.gitignore文件

.gitignore 文件用于告诉 git 哪些文件或目录是不需要加入版本控制的,即可以被忽略的。这对于排除编译产物、日志文件或者包管理器下载的依赖等是非常有用的。.gitignore 支持以下规则:

  1. 空行 或者以 # 开头的行会被忽略。
  2. 可以使用标准的 glob 模式匹配。
    • 星号 * 匹配零个或多个任意字符
    • [abc] 匹配任何一个列在括号中的字符(例如:a、b 或 c)
    • 问号 ? 匹配一个任意字符
    • 如果在方括号表达式中使用短划线(如 [0-9]),表示范围(例如:匹配任何数字)。
    • 使用双星号 ** 表示匹配任意中间目录,例如 a/**/z 可以匹配 a/z, a/b/z, 或 a/b/c/z
  3. 正斜杠 / 用来防止递归。
  4. 要忽略指定路径下的文件,可以在路径前加上斜杠 /(相对于 .gitignore 文件所在位置),比如 /temp/* 仅忽略项目根目录下的 temp 目录内的所有文件。
  5. 要包含特定文件或目录,请在模式前加上感叹号 ! 来取反。

你可以查阅更多 .gitignore 规则和使用方法:

  • git 官方文档: 访问 git 官网 的文档部分并搜索 .gitignore, 其中提供了关于 .gitignore 文件如何工作和如何编写规则的官方说明。
  • github 的 .gitignore 模板: github 提供了各种语言和环境下通用的 .gitignore 模板。你可以访问 github/gitignore 这个仓库来找到适合你项目需求的模板。

记得,在创建新仓库或向现有仓库添加新类型文件时,正确设置 .gitignore 是一个好习惯,可以避免一些不必要的问题。

三、常见的.gitignore模版

  1. 前端项目通用模版
# logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
.ds_store
dist
dist-ssr
coverage
*.local

# unplugin-auto-import
auto-imports.d.ts
components.d.ts
.eslintrc-auto-import.json

/cypress/videos/
/cypress/screenshots/

# editor directories and files
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?

# .env
.env.development
.env.production

  1. 常见后端模版(java)
help.md
/target/
/**/target/
!.mvn/wrapper/maven-wrapper.jar

### sts ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springbeans
.sts4-cache

### intellij idea ###
.idea
*.iws
*.iml
*.ipr

### netbeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
/build/

### vs code ###
.vscode/
rebel-remote.xml
rebel.xml

### customize ###
# 如果是上传到公共仓库,像application.yml这种如果写了各种密码信息的就不要上传了
# 留个template就行了
application-dev.yml
application-prod.yml
/logs

# 如果.gitignore文件本身也不想跟踪的话,就把下面的填上
.gitignore
  1. 常见python项目模版
*.py[cod]
data/*
*.log
venv
.venv
.idea

# c extensions
*.so

# packages
*.egg
*.egg-info
dist
build
eggs
parts
bin
var
sdist
develop-eggs
.installed.cfg
lib
lib64
__pycache__

# installer logs
docs/_build
build/*
*.buildinfo

# files
*.mp3
*.m4a
*.wav
*.png
*.jpg
*.flac
*.mo
(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com