首页 > 其他分享 >git之.gitignore的用法.md

git之.gitignore的用法.md

时间:2023-02-23 10:34:15浏览次数:57  
标签:表示 md git 匹配 文件 忽略 gitignore

软件工程常用git进行管理,但是有一些文件并不需要保存到版本库中(如:编译过程中产生的.o .d文件、临时文件),所以git提供了.gitignore文件机制,将要忽略的文件名写入(相当于黑名单),git就会自动忽略这些文件夹或者文件。

1 git忽略规则优先级

有多种方式设置git的忽略规则,其优先级为:

  1. 从命令行中读取可用的忽略规则

  2. 当前目录定义的.gitignore

  3. 父级目录定义的.gitignore,依次递推

  4. .git/info/exclude 文件(语法与.gitignore一致,见第二节)

  5. core.excludesfile中定义的全局.gitignore,配置命令如下:

    # 创建.gitignore文件,可以放在任意位置(如 /path/to/下),然后用以下命令配置
    git config --global core.excludesfile /path/to/.gitignore
    

2 .gitignore的语法

  1. 空格不匹配任意文件,可作为分隔符,可用反斜杠转义;

  2. 以“”开头的行都会被 Git 忽略。即#开头的文件标识注释,可以使用反斜杠进行转义;

  3. 可以使用标准的glob模式(简化的正则表达式)匹配;

  4. 斜杠"/": 以斜杠"/"开头表示根目录(git根目录);以斜杠"/"结束表示只匹配文件夹以及在该文件夹路径下的内容,但是不匹配该文件;

  5. 星号""匹配0个或多个字符,使用两个星号"*" 表示匹配任意中间目录,比如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忽略
*.a             表示忽略所有 .a 结尾的文件
!lib.a          表示但lib.a除外
/TODO           表示仅仅忽略项目根目录下的 TODO 文件,不包括 subdir/TODO
build/          表示忽略 build/目录下的所有文件,过滤整个build文件夹;
doc/*.txt       表示会忽略doc/notes.txt但不包括 doc/server/arch.txt
 
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 文件
 
/mtk/           表示过滤整个文件夹
*.zip           表示过滤所有.zip文件
/mtk/do.c       表示过滤某个具体文件

3 .gitignore的使用举例

添加.gitignore文件,适用于未被跟踪的的文件,对于已经跟踪(track)的文件并不使用,也即修改已经提交到版本库中的文件是无法忽略的。建议在创建仓库时就添加.gitignore文件。

对于已经存在纳入版本管理的文件,处理办法为:先把本地缓存删除(改变成未track状态),然后再提交。

git rm -r --cached .
git add .
git commit -m 'update .gitignore'

参考:

  1. .gitignore的用法
  2. Git忽略提交规则 - .gitignore配置运维总结

标签:表示,md,git,匹配,文件,忽略,gitignore
From: https://www.cnblogs.com/sureZ-learning/p/17147034.html

相关文章

  • git 设置用户
    gitconfig--globaluser.name"yourname"gitconfig--globaluser.email"youremail" 在项目根目录下进行单独配置$gitconfiguser.name“yourName”$git......
  • CMD常用命令汇总
    1、shutdown:60秒倒计时关机命令shutdown-s-t60将在一分钟之内关闭计算机2、regedit:打开注册表3、ipconfig/all:查看电脑网络连接信息,包括本地IP、DNS地址等ipconfig的另......
  • Git 不识别文件名字母大小写变化
    解决方案为了解决上述这个问题,可以终端运行以下命令:gitmvdockerfileDockerfile如果一次重命名了很多文件呢只有一个文件名大小写变化的这种场景,已经知道怎么应对......
  • Android Studio获取MD5、SHA1
    很多的时候都需要获取Android的MD5、SHA1值,像高德、百度地图就是例子需要这个值做密钥。下面Androidstudio工具获取方法1、点击studio面板右上角Gradle,找到app>Tas......
  • 打开CMD的方式
    打开CMD的方式开始+系统+命令提示符Win键+R输入cmd打开控制台(推荐使用)在任意文件夹下面,按住Shift键+鼠标右键点击,在此处打开命令窗口在资源管理器的地址栏......
  • 学习笔记——Git命令
    2023-02-221、Git常用命令(1)Git中的初始化gitinit(2)查看文件状态gitstatus(3)将内容提交到暂存区gitadd文件的名称(4)将内容提交到本地仓库gitcommit-m"......
  • git常用命令操作
    1. 查看分支gitbranch-a2.切换分支gitcheckout[分支名称]3.新建分支,首先切换到需要拉取的分支上,然后使用下面任一命令即可gitcheckout-b[分支......
  • git 拉取很慢
    背景问题:安装了一个最新版本的idea,在idea中使用git命令的时候,发现特别的慢。过程进入idea的bin目录修改runnerw.exe,runnerw64.exe这两个文件的文件名(改成什么都......
  • 重学 MDN Web API 文档: Promise All In One
    重学MDNWebAPI文档:PromiseAllInOnePromiseconstmyPromise=newPromise((resolve,reject)=>{setTimeout(()=>{resolve("foo");},300);});......
  • Github说明--如何在Github里面上传自己的代码
    1、注册一个账号这是必须的啦!不清楚注册步骤的,可以去看看我之前的博客,里面的步骤也是挺详细的呢!2、进入到用户主界面我们会看到这样的一个+标识:选择其中的NewReposit......