辽源网站建设公司,四大网站是哪四大,商务网站建设实训报告1500字,开发直播平台网站在使用Git的过程中#xff0c;我们喜欢有的文件比如日志#xff0c;临时文件#xff0c;编译的中间文件等不要提交到代码仓库#xff0c;这时就要设置相应的忽略规则#xff0c;来忽略这些文件的提交。简单来说一个场景#xff1a;在你使用git add .的时候#xff0c;遇…在使用Git的过程中我们喜欢有的文件比如日志临时文件编译的中间文件等不要提交到代码仓库这时就要设置相应的忽略规则来忽略这些文件的提交。简单来说一个场景在你使用git add .的时候遇到了把你不想提交的文件也添加到了缓存中去的情况比如项目的本地配置信息如果你上传到Git中去其他人pull下来的时候就会和他本地的配置有冲突所以这样的个性化配置文件我们一般不把它推送到git服务器中但是又为了偷懒每次添加缓存的时候都想用git add .而不是手动一个一个文件添加该怎么办呢很简单git为我们提供了一个.gitignore文件只要在这个文件中申明那些文件你不希望添加到git中去这样当你使用git add .的时候这些文件就会被自动忽略掉。有三种方法可以实现忽略Git中不想提交的文件1 在Git项目中定义.gitignore文件对于经常使用Git的朋友来说.gitignore配置一定不会陌生。这种方式通过在项目的某个文件夹下定义.gitignore文件在该文件中定义相应的忽略规则来管理当前文件夹下的文件的Git提交行为。.gitignore 文件是可以提交到公有仓库中这就为该项目下的所有开发者都共享一套定义好的忽略规则。在.gitingore 文件中遵循相应的语法在每一行指定一个忽略规则。如*.log*.temp/vendor2 在Git项目的设置中指定排除文件这种方式只是临时指定该项目的行为需要编辑当前项目下的 .git/info/exclude文件然后将需要忽略提交的文件写入其中。需要注意的是这种方式指定的忽略文件的根目录是项目根目录。3 定义Git全局的 .gitignore 文件git config --global core.excludesfile ~/.gitignore首先要强调一点这个文件的完整文件名就是.gitignore注意最前面有个“.”。一般来说每个Git项目中都需要一个“.gitignore”文件这个文件的作用就是告诉Git哪些文件不需要添加到版本管理中。实际项目中很多文件都是不需要版本管理的比如Python的.pyc文件和一些包含密码的配置文件等等。这个文件的内容是一些规则Git会根据这些规则来判断是否将文件添加到版本控制中。Git忽略文件的原则:* 忽略操作系统自动生成的文件比如缩略图等* 忽略编译生成的中间文件、可执行文件等也就是如果一个文件是通过另一个文件自动生成的那自动生成的文件就没必要放进版本库比如Java编译产生的.class文件* 忽略你自己的带有敏感信息的配置文件比如存放口令的配置文件。4 .gitignore文件的使用方法首先在你的工作区新建一个名称为.gitignore的文件。
然后把要忽略的文件名填进去Git就会自动忽略这些文件。
不需要从头写.gitignore文件GitHub已经为我们准备了各种配置文件只需要组合一下就可以使用了。有时对于git项目下的某些文件我们不需要纳入版本控制比如日志文件或者IDE的配置文件此时可以在项目的根目录下建立一个隐藏文件 .gitignorelinux下以.开头的文件都是隐藏文件然后在.gitignore中写入需要忽略的文件。[rootkevin ~]# cat .gitignore
*.xml
*.log
*.apk.gitignore注释用#, *表示匹配0个或多个任意字符所以上面的模式就是要忽略所有的xml文件,log文件和apk文件。
.gitignore配置文件用于配置不需要加入版本管理的文件配置好该文件可以为版本管理带来很大的便利。5 .gitignore忽略规则的优先级在 .gitingore 文件中每一行指定一个忽略规则Git检查忽略规则的时候有多个来源它的优先级如下由高到低
1从命令行中读取可用的忽略规则
2当前目录定义的规则
3父级目录定义的规则依次递推
4$GIT_DIR/info/exclude 文件中定义的规则
5core.excludesfile中定义的全局规则6 .gitignore忽略规则的匹配语法在 .gitignore 文件中每一行的忽略规则的语法如下
1空格不匹配任意文件可作为分隔符可用反斜杠转义
2以“”开头的行都会被 Git 忽略。即#开头的文件标识注释可以使用反斜杠进行转义。
3可以使用标准的glob模式匹配。所谓的glob模式是指shell所使用的简化了的正则表达式。
4以斜杠/开头表示目录/结束的模式只匹配文件夹以及在该文件夹路径下的内容但是不匹配该文件/开始的模式匹配项目跟目录如果一个模式不包含斜杠则它匹配相对于当前 .gitignore 文件路径的内容如果该模式不在 .gitignore 文件中则相对于项目根目录。
5以星号*通配多个字符即匹配多个任意字符使用两个星号** 表示匹配任意中间目录比如a/**/z可以匹配 a/z, a/b/z 或 a/b/c/z等。
6以问号?通配单个字符即匹配一个任意字符
7以方括号[]包含单个字符的匹配列表即匹配任何一个列在方括号中的字符。比如[abc]表示要么匹配一个a要么匹配一个b要么匹配一个c如果在方括号中使用短划线分隔两个字符表示所有在这两个字符范围内的都可以匹配。比如[0-9]表示匹配所有0到9的数字[a-z]表示匹配任意的小写字母。
8以叹号!表示不忽略(跟踪)匹配到的文件或目录即要忽略指定模式以外的文件或目录可以在模式前加上惊叹号!取反。需要特别注意的是如果文件的父目录已经被前面的规则排除掉了那么对这个文件用!规则是不起作用的。也就是说!开头的模式表示否定该文件将会再次被包含如果排除了该文件的父级目录则使用!也不会再次被包含。可以使用反斜杠进行转义。需要谨记git对于.ignore配置文件是按行从上到下进行规则匹配的意味着如果前面的规则匹配的范围更大则后面的规则将不会生效7 .gitignore忽略规则简单说明#表示此为注释,将被Git忽略
#
#表示忽略所有 .a 结尾的文件
*.a
#表示但lib.a除外
!lib.a
#表示仅仅忽略项目根目录下的 TODO 文件不包括 subdir/TODO
/TODO
#表示忽略 build/目录下的所有文件过滤整个build文件夹
build/
#表示会忽略doc/notes.txt但不包括 doc/server/arch.txt
doc/*.txt
#表示忽略当前路径下的bin文件夹该文件夹下的所有内容都会被忽略不忽略 bin 文件
bin/:
#表示忽略根目录下的bin文件
/bin:
#表示忽略cat.c不忽略 build/cat.c
/*.c:
#表示忽略debug/io.obj不忽略 debug/common/io.obj和tools/debug/io.obj
debug/*.obj:
#表示忽略/foo,a/foo,a/b/foo等
**/foo:
#表示忽略a/b, a/x/b,a/x/y/b等
a/**/b:
#表示不忽略bin目录下的run.sh文件
!/bin/run.sh
#表示忽略所有 .log 文件
*.log:
#表示忽略当前路径的 config.php 文件
config.php:
#表示过滤整个文件夹
/mtk/
#表示过滤所有.zip文件
*.zip
#表示过滤某个具体文件
/mtk/do.c#被过滤掉的文件就不会出现在git仓库中gitlab或github了当然本地库中还有只是push的时候不会上传。
#需要注意的是gitignore还可以指定要将哪些文件添加到版本管理中如下
!*.zip
!/mtk/one.txt#唯一的区别就是规则开头多了一个感叹号Git会将满足这类规则的文件添加到版本管理中。为什么要有两种规则呢
#想象一个场景假如我们只需要管理/mtk/目录中的one.txt文件这个目录中的其他文件都不需要管理那么.gitignore规则应写为:
/mtk/*
!/mtk/one.txt#假设我们只有过滤规则而没有添加规则那么我们就需要把/mtk/目录下除了one.txt以外的所有文件都写出来
#注意上面的/mtk/*不能写为/mtk/否则父目录被前面的规则排除掉了one.txt文件虽然加了!过滤规则也不会生效----------------------------------------------------------------------------------
#还有一些规则如下
fd1/*
#说明忽略目录 fd1 下的全部内容注意不管是根目录下的 /fd1/ 目录还是某个子目录 /child/fd1/ 目录都会被忽略/fd1/*
#说明忽略根目录下的 /fd1/ 目录的全部内容/*
!.gitignore
!/fw/
/fw/*
!/fw/bin/
!/fw/sf/
#说明忽略全部内容但是不忽略 .gitignore 文件、根目录下的 /fw/bin/ 和 /fw/sf/ 目录注意要先对bin/的父目录使用!规则使其不被排除。温馨提示如果你不慎在创建.gitignore文件之前就push了项目那么即使你在.gitignore文件中写入新的过滤规则这些规则也不会起作用Git仍然会对所有文件进行版本管理。简单来说出现这种问题的原因就是Git已经开始管理这些文件了所以你无法再通过过滤规则过滤它们。所以大家一定要养成在项目开始就创建.gitignore文件的习惯否则一单push处理起来会非常麻烦。以上内容希望帮助到大家很多PHPer在进阶的时候总会遇到一些问题和瓶颈业务代码写多了没有方向感不知道该从那里入手去提升对此我整理了一些资料包括但不限于分布式架构、高可扩展、高性能、高并发、服务器性能调优、TP6laravelRedisSwoole、Swoft、Kafka、Mysql优化、shell脚本、Docker、微服务、Nginx等多个知识点高级进阶干货需要的可以免费分享给大家需要戳这里PHP进阶架构师实战视频、大厂面试文档免费获取