时间:2023-03-09来源:系统城装机大师作者:佚名
在本地的代码目录中,有些文件或者目录我们并不想提交到仓库中,比如一些运行日志等文件。这样的话,我们提交代码时,就只能一个一个文件去git add
,太麻烦了。
为了解决这个问题,Git里面有一个.gitignore
文件。可以指定Git需要忽略哪些文件。配置好之后,Git就会自动忽略满足配置的文件。这样,我们就可以尽情的使用git add .
来添加文件了。
在 .gitingore
文件中,每一行指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):
$GIT_DIR/info/exclude
文件中定义的规则core.excludesfile
中定义的全局规则在 .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
文件这里面有一些特殊情况需要考虑,比如某文件已经被提交过了,之后再对他做了一个.gitignore
的忽略的话。忽略是不会生效的,需要我们手动先将缓存删除。
1 2 3 4 |
# 删除本地的缓存 git rm -r --cached . # 重新提交 git commit -am 'gitignore' |
再比如,我们忽略了文件夹A,但是现在要往文件夹A中添加代码文件。你会发现你没法把文件夹A中的代码提交。因为文件夹A被忽略了。
1 2 3 4 |
# 强制添加 git add -f 文件A /xxx .js # 正常提交 git commit -am 'xxx' |
由于.gitignore
文件经常会配置很多内容,某些文件你并不能很直观的知道为什么被忽略了。所以Git提供了一个检查忽略的命令。
1 | git check-ignore - v 文件夹A /xxx .js |
最后,提供一个网上整理的关于不同开发语言项目的.gitignore
文件内容的建议:github.com/github/giti…
以上就是.gitignore文件作用及使用方法详解的详细内容
2024-07-07
Java框架如何实现非阻塞式编程?2023-03-11
Android Jetpack 组件LiveData源码解析2023-03-11
hbuilderx设置Firefox浏览器安装路径教程 hbuilderx怎么设置Firefox浏览器安装路径?一、AVL树的概念 二、AVL树节点的定义 三、AVL树的插入 四、AVL树的旋转 1.左单旋 2.右单旋 3.左右双旋 4.右左双旋 五、进行验证 六、AVLTree的性能...
2023-03-09