背景说明
有些时候 上传代码的时候,不小心把日志、编译产物等不相关的文件也一起push到远程仓库了。这时,我们就有个需求,就是 忽略日志和编译产物等非必须文件,并删除远程仓库里这些需要忽略的文件。
方式一
简单粗暴型的,就是既不要本地的这些忽略文件,也不要远程仓库里的忽略文件,那就先删除,再提交,最后再push。(该种方式,我是commit 删除动作之后,再修改gitignore文件的)
方式二
此时,我们的要求是,保留本地这些被忽略的文件,但是删除远程仓库里的已被忽略的文件。
操作: 修改 gitignore文件,在本地仓库的根目录下执行 git rm -r --cached “被忽略的文件或文件名” 执行。然后执行 add commit,和push操作。这时便会保留本地被忽略的文件,删除远程仓库里被忽略的文件。
原理: git rm -r --cached 清除缓存操作,在版本库里执行的是删除操作,该删除操作会被push到远程仓库,所以远程仓库中的忽略文件就被删除了。