首页 最新 热门 推荐

  • 首页
  • 最新
  • 热门
  • 推荐

Git忽略文件.gitignore

  • 25-03-02 04:41
  • 2114
  • 9037
blog.csdn.net

Git忽略文件.gitignore

在工程中,并不是所有文件都需要保存到版本库中的,例如“target”目录及目录下的文件就可以忽略。在Git工作区的根目录下创建一个特殊的.gitignore文件,然后把要忽略的文件名填进去,Git就会自动忽略这些文件或目录。

gitignore的基础用法

#    .gitignore配置文件的一些通用技巧 [参考:https://git-scm.com/docs/gitignore]
#     1.空白行不匹配任何文件,所以可以作为可读性的分隔符,同时两端的空格将会被忽略.
#     2.使用[#]开头,将会注释掉整行,使其不进行匹配操作,如果需要匹配#开头,可以使用转义字符[\].
#     3.1匹配模式以[/]结尾,表示想要匹配一个目录及其子文件.(比如[foo/]会匹配foo目录及其下面的路径.)
#     3.2匹配模式不包含[/],将会全局匹配该文件.
#     4.通配符
#       [*]:  匹配除[/]以外的任何内容,也就意味着[*]不能跨目录.
#       [?]:  匹配除[/]和[[]以及[]]以外的任何一个字符.
#       [**]: 匹配所有的内容,或者说匹配任意目录下的内容.
#         示例:
#           1.[**/foo/bar]  将会匹配所有直接在foo目录下的bar,无论foo处在何处.
#           2.[foo/**]则表示匹配foo目录下的所有文件和目录.
#           3.[a/**/b]则可以匹配a/b, a/c/b, a/c/d/b,即此处的[**]可以表示0个或多个.
#           !!! 需要注意的是,除上面示例的用法外,剩余的[**]都是无效的..
#     5.可以通过前缀[!]来表示不忽略某些文件,比如可以通过[!a]来确保文件a不会被忽略,即时前面已经声明了忽略其父目录,该模式优先级高于普通忽略模式.
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

Git 三种方法忽略提交的文件

在Git项目中定义 .gitignore 文件

这种方式通过在项目的某个文件夹下定义 .gitignore 文件,在该文件中定义相应的忽略规则,来管理当前文件夹下的文件的Git提交行为。

.gitignore 文件是可以提交到公有仓库中,这就为该项目下的所有开发者都共享一套定义好的忽略规则。

在 .gitingore 文件中,遵循相应的语法,在每一行指定一个忽略规则。如:

*.log
*.temp
/vendor2\
  • 1
  • 2
  • 3

在Git项目的设置中指定排除文件

这种方式只是临时指定该项目的行为,需要编辑当前项目下的 .git/info/exclude 文件,然后将需要忽略提交的文件写入其中。

需要注意的是,这种方式指定的忽略文件的根目录是项目根目录。

定义Git全局的 .gitignore 文件

除了可以在项目中定义 .gitignore 文件外,还可以设置全局的 git .gitignore 文件来管理所有Git项目的行为。这种方式在不同的项目开发者之间是不共享的,是属于项目之上Git应用级别的行为。

这种方式也需要创建相应的 .gitignore 文件,可以放在任意位置。然后在使用以下命令配置

Git: git config --global core.excludesfile \~/.gitignore
  • 1

.gitignore文件中的忽略规则

在空格不匹配任意文件,可作为分隔符,可用反斜杠转义

# 开头:标识注释,可以使用反斜杠进行转义

! 开头:标识否定,该文件将会再次被包含,如果排除了该文件的父级目录,则使用 ! 也不会再次被包含。可以使用反斜杠进行转义

/ 结束:只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件

/ 开头:匹配文件

如果一个模式不包含斜杠,则它匹配相对于当前 .gitignore 文件路径的内容,如果该模式不在 .gitignore 文件中,则相对于项目根目录

** 匹配多级目录,可在开始,中间,结束

? 通用匹配单个字符

[] 通用匹配单个字符列表

常用匹配示例:

bin/ :忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略 bin 文件
/bin :忽略根目录下的bin文件
/*.c :忽略 cat.c,不忽略 build/cat.c
debug/*.obj : 忽略 debug/io.obj,不忽略 debug/common/io.obj 和 tools/debug/io.obj
**/foo : 忽略/foo, a/foo, a/b/foo等
a/**/b : 忽略a/b, a/x/b, a/x/y/b等
!/bin/run.sh : 不忽略 bin 目录下的 run.sh 文件
\*.log : 忽略所有 .log 文件
config.php : 忽略当前路径的 config.php 文件
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

java忽略文件

# 编译后的class文件,忽略所有以[.class]结尾的文件
*.class
# 日志文件,忽略所有以[.log]结尾的文件.
*.log
# BlueJ 文件,忽略所有以[.ctxt]结尾的文件.
*.ctxt
# Mobile Tools for Java (J2ME),忽略[.mtj.tmp/]目录及其子文件.
.mtj.tmp/
# 打包文件,忽略所有以[.jar]或[.war]或[.nar]或[.ear]或[.zip]或[.tar.gz]或[rar]结尾的文件.
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

IDE环境忽略文件

.idea/*
.idea/compiler.xml
.idea/encodings.xml
.idea/modules.xml
*.iml
  • 1
  • 2
  • 3
  • 4
  • 5

maven忽略文件

target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
# Avoid ignoring Maven wrapper jar file (.jar files are usually ignored)
!/.mvn/wrapper/maven-wrapper.jar
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

other环境忽略文件

*.sw?
.#*
*#
*~
.classpath
.project
.settings/
bin
build
target
dependency-reduced-pom.xml
*.sublime-*
/scratch
.gradle
Guardfile
README.html
*.iml
.idea
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

.gitignore规则不生效

.gitignore只能忽略那些原来没有被 track 的文件,如果某些文件已经被纳入了版本管理中,则修改.gitignore是无效的。

解决方法就是先把本地缓存删除**(改变成未track状态)**,然后再提交:

git rm -r  cached .
git add .
git commit -m 'update .gitignore'
  • 1
  • 2
  • 3
注:本文转载自blog.csdn.net的孤水寒月的文章"https://blog.csdn.net/NAN0808/article/details/144693628"。版权归原作者所有,此博客不拥有其著作权,亦不承担相应法律责任。如有侵权,请联系我们删除。
复制链接
复制链接
相关推荐
发表评论
登录后才能发表评论和回复 注册

/ 登录

评论记录:

未查询到任何数据!
回复评论:

分类栏目

后端 (14832) 前端 (14280) 移动开发 (3760) 编程语言 (3851) Java (3904) Python (3298) 人工智能 (10119) AIGC (2810) 大数据 (3499) 数据库 (3945) 数据结构与算法 (3757) 音视频 (2669) 云原生 (3145) 云平台 (2965) 前沿技术 (2993) 开源 (2160) 小程序 (2860) 运维 (2533) 服务器 (2698) 操作系统 (2325) 硬件开发 (2492) 嵌入式 (2955) 微软技术 (2769) 软件工程 (2056) 测试 (2865) 网络空间安全 (2948) 网络与通信 (2797) 用户体验设计 (2592) 学习和成长 (2593) 搜索 (2744) 开发工具 (7108) 游戏 (2829) HarmonyOS (2935) 区块链 (2782) 数学 (3112) 3C硬件 (2759) 资讯 (2909) Android (4709) iOS (1850) 代码人生 (3043) 阅读 (2841)

热门文章

112
数据库
关于我们 隐私政策 免责声明 联系我们
Copyright © 2020-2024 蚁人论坛 (iYenn.com) All Rights Reserved.
Scroll to Top