在使用git对项目进行版本管理的时候,我们总有一些不需要提交到版本库里的文件和文件夹,这个时候我们就需要让git自动忽略掉一下文件。
一 :使用.gitignore忽略文件
为了让git忽略指定的文件和文件夹,我们需要在项目的根目录当中创建 .gitignore文件,使用 .gitignore文件的方式很简单,在 .gitignore文件当中,一行代表一条忽略规则,如果是一个带 “ .”这种有后缀的字符串那么git就会忽略这个文件。“ * ”表示的就是选中所有,如果没有“ . ”就表示一个文件夹。
注意:.gitignore只能忽略那些原来没有被track的文件,如果某些文件已经被纳入了版本管理中,则修改 .gitignore是无效的。
二:删除文件的追踪
.gitignore 文件的用途,只能作用于 Untracked Files,也就是那些从来没有被 Git 记录过的文件(自添加以后,从未 add 及 commit 过的文件)。
对于已经提交过文件,想要让ignore生效, 也是有办法的:
- 使用git rm --cached从 Git 的数据库中删除对于该文件的追踪;
- 把对应的规则写入**.gitignore**,让忽略真正生效;
- 提交+推送。
只有这样做,所有的团队成员才会保持一致而不会有后遗症,也只有这样做,其他的团队成员根本不需要做额外的工作来维持对一个文件的改变忽略。
注意: git rm --cached 删除的是追踪状态,而不是物理文件;如果你真的是彻底不想要了,你也可以直接 rm --> 忽略 --> 提交+推送。
举个例子:
1:删除db文件下的mcu.db缓存
git rm --cached db/mcu.db
这样就可以删除掉db/mcu.db的文件跟踪了, .gitignore内的忽略规则就会真正生效。
2:清除本地库的全部缓存
git rm -r --cached . //清除本地库的缓存
git add . //将本地代码重新加入
git commit -m "update .gitignore" //让 .gitignore 文件夹生效,读取我配置的过滤规则
注:操作后的线上项目重新pull的时候,会把忽略的文件都删掉,记得把需要的文件单独拉上去,不然就报错了啦。
三:暂时忽略某个文件的修改
开发过程中可能还会遇到这样的情况,某个文件没有修改好,但是又要提交代码, 想这次忽略这个文件,下一次提交时再去提交它。
git update-index --assume-unchanged //这样Git会暂时忽略你对文件做的修改
- git update-index --assume-unchanged ,这样Git会暂时忽略你对文件做的修改
- 当你的工作告一段落决定可以提交的时候,重置该标识:git update-index --no-assume-unchanged,于是Git 只需要做一次更新,这是完全可以接受的了;
- 提交并推送代码到远程库