去掉已经托管到 git 上的文件
有不该提交的文件已经提交后,仅仅在 .gitignore 中加入忽略是不行的。这个时候需要执行:
1 | git rm -r --cached . # . 可以是任意想忽略的文件路径 -r(recursive) 表示递归搜索每个文件 |
.gitignore 文件
一个典型的 .gitignore 文件如下:
1 | *.a # 忽略所有 .a 结尾的文件 |
其他匹配规则
?:代表任意的一个字符*:代表任意数目的字符{!ab}:必须不是此类型{ab,bb,cx}:代表ab,bb,cx中任一类型即可[abc]:代表a,b,c中任一字符即可[ ^abc]:代表必须不是a,b,c中任一字符
添加
.gitkeep文件解决 git 不能追踪空目录问题
手动设置不要检查特定文件的更改情况
- 暂时忽略某个文件不提交
1 | git update-index --assume-unchanged path/to/some/dir |
- 恢复被忽略的文件重新被版本控制
1 | git update-index --no-assume-unchanged path/to/some/dir |
另外 git 还提供了另一种 exclude 的方式来做同样的事情,不同的是 .gitignore 这个文件本身会提交到版本库中去,用来保存的是公共的需要排除的文件。而 .git/info/exclude 这里设置的则是你自己本地需要排除的文件。 他不会影响到其他人,也不会提交到版本库中去。