git设置忽略和git rm

项目中我们常需要对一些缓存文件和库文件进行设置忽略(例如nodejs的node_module目录和dist目录,php的vendor目录),那么我们要如何设置忽略呢?其实只需要编辑.gitignore文件就行忽略规则如下:

#               表示此为注释,将被Git忽略
config.php     表示忽略当前路径的 config.php 文件
*.log           表示忽略所有 .log 结尾的文件
debug/*.py    表示忽略debug/io.py,不忽略 debug/common/io.py和tools/debug/io.py
**/foo         表示忽略/foo,a/foo,a/b/foo等
a/**/b         表示忽略a/b, a/x/b,a/x/y/b等
!error.log      表示但error.log除外
/node_module    表示仅仅忽略项目根目录下的 node_module 文件,不包括 test/node_module
build/          表示忽略 build/目录下的所有文件,过滤整个build文件夹;


被过滤掉的文件就不会出现在git仓库中(gitlab或github)了,当然本地库中还有,只是push的时候不会上传。如果需要排除某些项,让它被git管理,可以用!,例如:
/mtk/*
!/mtk/one.txt

以上的排除都是基于未被git管理之后才能设置生效,如果文件或者目录已经被管理提交了,设置将失效。此时就需要使用git rm或者git rm --cached来处理了。

git rm 和 git rm --cached

当我们需要删除暂存区或分支上的文件, 同时工作区也不需要这个文件(删除工作区的文件)了, 可以使用

git rm file_path
git commit -m 'delete somefile'
git push

当我们需要删除暂存区或分支上的文件, 但本地又需要使用(本地工作区的不删除), 只是不希望这个文件被版本控制, 可以使用

git rm --cached file_path
git commit -m 'delete remote somefile'
git push

设置以上之后就可以正常的使用git忽略你想忽略的文件和目录了。

你可能感兴趣的:(git设置忽略和git rm)