本文参考Git 上传忽略文件设置 .ignore exclude和Git忽略文件在此表示感谢。
在git的repo中,有一些无用的log文件,或者备份文件,没事status都会显示,很麻烦。这里完整的介绍两种方法,欢迎斧正。
方法一. 使用exclude方法
- exclude文件的路径是repo的
.git/info/exclude
。这个文件是git系统的文件,不会被上传到git服务器,并且是对当前repo有效的,是一种全局方法。 - 具体步骤如下:
打开文件。文件内容如下图:
在文件末尾添加忽略文件。(使用标准的
glob
模式匹配忽略文件,这是一种简化的正则命令)。
比如,我想忽略所有的txt文件,那么在exclude的末尾添加如下内容。添加
test.txt
,使用git status
去测试发现没有test.txt文件需要添加!
如下:
方法二. 使用.gitignore
文件
gitignore
文件是自己新建的,不是git自带的。这个文件会被git status检测到,会被上传到git服务器。- 方法步骤和方法一相同。这里不在赘述。
glob命令
- 所谓的 glob 模式是指 shell 所使用的简化了的正则表达式。
- 所有空行或者以注释符号 # 开头的行都会被 Git 忽略。
- 可以使用标准的 glob 模式匹配。
- 匹配模式最后跟反斜杠(/)说明要忽略的是目录。
- 要忽略指定模式以外的文件或目录,可以在模式前加上惊叹号(!)取反。
- 星号(*)匹配零个或多个任意字符;
- [abc] 匹配任何一个列在方括号中的字符(这个例子要么匹配一个 a,要么匹配一个 b,要么匹配一个 c);
- 问号(?)只匹配一个任意字符;
- 如果在方括号中使用短划线分隔两个字符,表示所有在这两个字符范围内的都可以匹配(比如[0-9]表示匹配所有 0 到 9 的数字)。
方法不起作用
- 这是因为在创建这个规则前,你已经git status过了,这些文件已经被list过了,存在git的
cache
中,需要使用如下命令:
git rm --cached filename
git commit -m