本文作者:云初冀北

gitignore文件放在哪个目录才生效(git 操作文件)

gitignore文件放在哪个目录才生效(git 操作文件)摘要: 正文在本地的代码目录中,有些文件或者目录我们并不想提交到仓库中,比如一些运行日志等文件。这样的话,我们提交代码时,就只能一个一个文件去git add,太麻烦了。为了解决这个问题,G...

?=正文

本地代码目录中,有些文件或者目录我们并不想提交到仓中,比如一些运行日志等文件。这样的话,我们提交代码时,就只能一个一个文件去git add,太麻烦了。

为了解决这个问题,Git里面有一个.gitignore文件。可以指定Git需要忽略哪些文件。配置好之后,Git就会自动忽略满足配置的文件。这样,我们就可以尽情的使用git add .添加文件了。

Git 忽略规则优先级

.gitinGore 文件中,每一指定一个忽略规则,Git 检查忽略规则的时候有多个来源,它的优先级如下(由高到低):

命令行读取可用的忽略规则当前目录定义的规则父级目录定义的规则,依次递推$GIT_DIR/info/exclude 文件中定义的规则core.excludesFile中定义的全局规则

Git 忽略规则匹配语法

.gitignore 文件中,每一行的忽略规则的语法如下:

空格不匹配任意文件,可作为分隔符,可用反斜杠转义开头的文件标识注释,可以使用反斜杠进行转义!开头的模式标识否定,该文件将会再次被含,如果排除了该文件的父级目录,则使用!也不会再次被包含。可以使用反斜杠进行转义/结束的模式只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件/开始的模式匹配项目跟目录如果一个模式不包含斜杠,则它匹配相对于当前.gitignore文件路径的内容,如果该模式不在.gitignore文件中,则相对于项目根目录** 匹配多级目录,可在开始,中间,结束? 通用匹配单个字符* 通用匹配零个或多个字符[] 通用匹配单个字符列表

匹配示例

bin/: 忽略当前路径下的bin文件夹,该文件夹下的所有内容都会被忽略,不忽略bin文件/bin: 忽略根目录下的bin文件/*.c: 忽略 cat.c,不忽略 bUIld/cat.cdebug/*.obj: 忽略 debug/io.obj,不忽略 debug/common/io.objtools/debug/io.obj**/foo: 忽略/foo, a/foo, a/b/fooa/**/b: 忽略a/b, a/x/b, a/x/y/b!/bin/run.sh: 不忽略 bin 目录下的 run.sh 文件*.log: 忽略所有 .log 文件config.Php: 忽略当前路径的 config.php 文件

特殊情况

文件已经提交过

这里面有一些特殊情况需要考虑,比如某文件已经被提交过了,之后再对他做了一个.gitignore的忽略的话。忽略是不会生效的,需要我们手动先将缓存删除。

# 删除本地的缓存 git rm -r --cached . # 重新提交 git commit -am 'gitignore' 

添加一个已经配置忽略的文件

再比如,我们忽略了文件夹A,但是现在要往文件夹A中添加代码文件。你会发现你没法把文件夹A中的代码提交。因为文件夹A被忽略了。

# 强制添加 git add -f 文件A/xxx.JS # 正常提交 git commit -am 'xxx' 

检查文件为什么被忽略

由于.gitignore文件经常会配置很多内容,某些文件你并不能很直观的知道为什么被忽略了。所以Git提供了一个检查忽略的命令

git check-ignore -v 文件夹A/xxx.js 

gitignore建议

最后,提供一个网上整理的关于不同开发语言项目的.gitignore文件内容的建议:github.com/github/giti&hellIP;

以上就是.gitignore文件作用及使用方法详解的详细内容,更多关于.gitignore文件的资料请关注云初冀北其它相关文章!

免责声明
本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail:GOliszhou@gmail.com
$

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享

发表评论

快捷回复:

评论列表 (暂无评论,84人围观)参与讨论

还没有评论,来说两句吧...