首页 > 其他分享 >Git设置提交时忽略的文件

Git设置提交时忽略的文件

时间:2023-04-17 18:01:35浏览次数:25  
标签:文件 Git 匹配 忽略 提交 规则 目录 gitignore


法一:

定义全局忽略规则

1、新建一个.gitignore文件git.gitignore

*.log
*.temp
/vendor

注:每一行指定一个忽略规则 

2、使用命令添加规则

git config --global core.excludesfile F:\\git\\git.gitignore

法二:

1、选择要忽dkq文件右键,选择Add to ignore list

Git设置提交时忽略的文件_根目录

 

Git设置提交时忽略的文件_转义_02

会生成.gitignore文件,更改这个文件也可以

Git设置提交时忽略的文件_转义_03

.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配置文件是按行从上到下进行规则匹配的,意味着如果前面的规则匹配的范围更大,则后面的规则将不会生效;

#               表示此为注释,将被Git忽略
config.php      表示忽略当前路径的 config.php 文件
*.a             表示忽略所有 .a 结尾的文件
!lib.a          表示lib.a除外
/TODO           表示仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/          表示忽略 build/目录下的所有文件,过滤整个build文件夹;
doc/*.txt       表示会忽略doc/notes.txt但不包括 doc/server/arch.txt
**/foo          表示忽略/foo,a/foo,a/b/foo等
a/**/b          表示忽略a/b, a/x/b,a/x/y/b等

 
被过滤掉的文件就不会出现在git仓库中了,当然本地库中还有,只是push的时候不会上传。
 
需要注意的是,gitignore还可以指定要将哪些文件添加到版本管理中,如下:
!*.zip
!/mtk/one.txt
 
唯一的区别就是规则开头多了一个感叹号,Git会将满足这类规则的文件添加到版本管理中。为什么要有两种规则呢?
想象一个场景:假如我们只需要管理/mtk/目录中的one.txt文件,这个目录中的其他文件都不需要管理,那么.gitignore规则应写为::
/mtk/*
!/mtk/one.txt

----------------------------------------------------------------------------------
还有一些规则如下:
fd1/*
说明:忽略目录 fd1 下的全部内容;注意,不管是根目录下的 /fd1/ 目录,还是某个子目录 /child/fd1/ 目录,都会被忽略;

/fd1/*
说明:忽略根目录下的 /fd1/ 目录的全部内容;

标签:文件,Git,匹配,忽略,提交,规则,目录,gitignore
From: https://blog.51cto.com/u_12374018/6195721

相关文章

  • Git和VIM常用命令速记
    查看主机名称:gitremoteshow手动建立追踪关系:gitbranch--set-upstreammasterorigin/next//指定master分支追踪origin/next分支重新绑定追踪关系:gitremoteremoveorigin//如果本地代码,已经关联了远程分支,则需要先解除关联[email protected]:......
  • git本地分支,远程分支,远程跟踪分支的关系
    一、我的理解其实概念很简单,本地分支就是在本地机器上的分支;远程分支就是远程机器上的分支;远程跟踪分支就是跟踪远程分支的分支,这个远程跟踪分支也是在本地上的,但是你不能切换到该分支上,也不能修改它的数据。 随着你进一步开发: 可以看到远程跟踪分支一直指向d5a22c,而本地......
  • Git如何放弃所有本地修改
    git checkout . #本地所有修改的。没有的提交的,都返回到原来的状态git stash #把所有没有提交的修改暂存到stash里面。可用git stash pop回复。git reset --hard HASH #返回到某个节点,不保留修改。git reset --soft HASH #返回到某个节点。保留修改......
  • Git查看删除本地或远程分支
    1.查看本地分支gitbranch2.产看远程分支gitbranch-a3.删除本地分支gitbranch-dbranchname注意:删除本地分支时要切换到其他分支gitbranch-Dbranchname  强制删除本地分支4.删除远程分支gitpushorigin--deletebranchname ......
  • Git log怎么查看分支提交过哪些文件
    以上简单介绍了一些 gitlog 命令支持的选项。表2-2还列出了一些其他常用的选项及其释义。选项说明-p按补丁格式显示每个更新之间的差异。--word-diff按worddiff格式显示差异。--stat显示每次更新的文件修改统计信息。--shortstat只显示--stat中最后的行数修改添加移除统......
  • git使用
    今日内容git介绍和安装git使用流程git常用命令git忽略文件git多分支git远程仓库ssh方式连接远程仓库协同开发冲突解决线上分支合并远程仓库回滚1git软件介绍和安装#代码管理软件-git-svn#它们能做的事情--->用来做代码管理[文件......
  • 通过github搭建简单的网站
    正常搭建个网站可能需要服务器和域名,但是有没有不花钱的方法呢,github可以。首先新建个工程,名称随意然后新建个index.html文件做为首页之后点击设定最下面有个GitHubPages选择选择下面的内容,你的网站地址就会生成出来了打开网址https://huyunan.github.io/haha/ ......
  • 【vue3-element-admin】Husky + Lint-staged + Commitlint + Commitizen + cz-git 配
    前言本文介绍vue3-element-admin如何通过Husky+Lint-staged+Commitlint+Commitizen+cz-git来配置Git提交代码规范。核心内容是配置Husky的pre-commit和commit-msg两个钩子:pre-commit:Husky+Lint-staged整合实现Git提交前代码规范检测/格式化(前提......
  • gitee github 左侧栏树形显示插件 Octotree codetree 浏览器插件
    起因看到一位仁兄用gitee做仓库https://gitee.com/zhengqingya/java-developer-document然后左侧栏挺方便(抖音视频)下载chrome扩展市场搜octotree用于githubcodetree用于gitee双核浏览器扩展市场搜octotree用于githubgitcodetree用于gitee......
  • Git显示文件已修改,但是本地和远程代码相同
    问题背景重装系统,备份了IDEA的代码,新系统打开项目显示全部已修改解决方案在项目根目录运行以下两条命令gitrm--cached-r.gitreset--hard......