当前位置:   article > 正文

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

gitignore 忽略指定文件

git如何忽略指定文件

文章概要:本文主要介绍了git中如何忽略指定文件,包括已经commit了的文件。解释了gitignore文件的写法以及提供了常见的gitignore模版。

本文内容来自:谷流仓AI - ai.guliucang.com

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

一、修改.gitignore文件

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

二、详解.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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  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
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/460815
推荐阅读
  

闽ICP备14008679号