Git忽略⽂件之.gitignore的使⽤
在使⽤Git的过程中,我们喜欢有的⽂件⽐如⽇志,临时⽂件,编译的中间⽂件等不要提交到代码仓库,这时就要设置相
应的忽略规则,来忽略这些⽂件的提交。
⼀、Git忽略⽂件提交的⽅法
有三种⽅法可以实现忽略Git中不想提交的⽂件。
1、在Git项⽬中定义.gitignore⽂件
这种⽅式通过在项⽬的某个⽂件夹下定义.gitignore⽂件,在该⽂件中定义相应的忽略规则,来管理当前⽂件夹下的⽂件的Git提交⾏为。
.gitignore⽂件是可以提交到公有仓库中,这就为该项⽬下的所有开发者都共享⼀套定义好的忽略规则。
在.gitingore⽂件中,遵循相应的语法,在每⼀⾏指定⼀个忽略规则。如:
*.log
*.temp
/vendor
2、在Git项⽬的设置中指定排除⽂件
这种⽅式只是临时指定该项⽬的⾏为,需要编辑当前项⽬下的.git/info/exclude⽂件,然后将需要忽略提交的⽂件写⼊其中。
需要注意的是,这种⽅式指定的忽略⽂件的根⽬录是项⽬根⽬录。
re⽂件3、定义Git全局的.gitignore⽂件
除了可以在项⽬中定义.gitignore⽂件外,还可以设置全局的ore⽂件来管理所有Git项⽬的⾏为。这种⽅式在不同的项⽬开发者之间
是不共享的,是属于项⽬之上Git应⽤级别的⾏为。
这种⽅式也需要创建相应的.gitignore⽂件,可以放在任意位置。然后在使⽤以下命令配置Git:
esfile~/.gitignore
⼆、Git忽略规则
详细的忽略规则可以参考官⽅英⽂⽂档
1、Git忽略规则优先级
在.gitingore⽂件中,每⼀⾏指定⼀个忽略规则,Git检查忽略规则的时候有多个来源,它的优先级如下(由⾼到低):
从命令⾏中读取可⽤的忽略规则
当前⽬录定义的规则
⽗级⽬录定义的规则,依次递推
$GIT_DIR/info/exclude⽂件中定义的规则
esfile中定义的全局规则
2、Git忽略规则匹配语法
在.gitignore⽂件中,每⼀⾏的忽略规则的语法如下:
空格不匹配任意⽂件,可作为分隔符,可⽤反斜杠转义
#开头的⽂件标识注释,可以使⽤反斜杠进⾏转义
!
开头的模式标识否定,该⽂件将会再次被包含,如果排除了该⽂件的⽗级⽬录,则使⽤!也不会再次被包含。可以使⽤反斜杠进⾏转义
/
结束的模式只匹配⽂件夹以及在该⽂件夹路径下的内容,但是不匹配该⽂件
/
开始的模式匹配项⽬跟⽬录
如果⼀个模式不包含斜杠,则它匹配相对于当前.gitignore⽂件路径的内容,如果该模式不在.gitignore⽂件中,则相对于项⽬根⽬录
**
匹配多级⽬录,可在开始,中间,结束
通⽤匹配单个字符
[]
通⽤匹配单个字符列表
3、常⽤匹配⽰例:
bin/
:忽略当前路径下的bin⽂件夹,该⽂件夹下的所有内容都会被忽略,不忽略bin⽂件
/bin
:忽略根⽬录下的bin⽂件
/*.c
:忽略cat.c,不忽略build/cat.c
debug/*.obj
:忽略debug/,不忽略debug/common/和tools/debug/
**/foo
:忽略/foo,a/foo,a/b/foo等
a/**/b
:忽略a/b,a/x/b,a/x/y/b等
!/bin/
:不忽略bin⽬录下的⽂件
*.log
:忽略所有.log⽂件
:忽略当前路径的⽂件
三、.gitignore规则不⽣效
.gitignore只能忽略那些原来没有被track的⽂件,如果某些⽂件已经被纳⼊了版本管理中,则修改.gitignore是⽆效的。
解决⽅法就是先把本地缓存删除(改变成未track状态),然后再提交:
gitrm-rf--cached.
gitadd.
gitcommit-m'ore'
本文发布于:2022-12-29 01:03:22,感谢您对本站的认可!
本文链接:http://www.wtabcd.cn/fanwen/fan/90/50161.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |