git忽略提交特定文件(.idea/workspace.xml)
参考链接:https://www.cnblogs.com/lizexiong/p/16444830.html
1.背景
在用git拉取代码时或者提交代码时,在提交时出现modified: .idea/workspace.xml 或拉取代码时出现本地.idea/workspace.xml已修改,需要解决冲突,非常让人烦恼.
提交时报错图片
拉取时报错图片
2.问题原因
原因在于 Git 的忽略,Git 在同步代码时,设置本地忽略文件。前提是必须保证 Git 的远程端仓库中没有这个要忽略的文件。当远端包含有该文件时,本地设置的 ignore 将不再发挥作用。.idea这个文件夹是多数ide记录修改的一个文件,没事就会乱改,所以可以忽略,不然每次提交或者拉取代码就很麻烦,就会有上图中的报错。
3.解决办法
在本地的.gitignore文件里面添加上 .idea/workspace.xml 文件。直接创建代码库根目录下就行,或者忽略idea整个文件夹也行,但是这里本人还是只忽略了workspace.xml。可以自己选择。
如果已经将本地的文件提交到了远端,那么需要将远端提交的文件给删掉,删除指令为:
git rm -r --cached .idea/workspace.xml
这里解释一下上面命令的使用方式:
git rm : 同时从工作区和索引中删除文件。即本地的文件也被删除了。
git rm --cached : 从索引中删除文件。但是本地文件还存在, 只是不希望这个文件被版本控制。
(有想深入了解git工作区、暂存区的可以参考https://www.cnblogs.com/lizexiong/p/15595181.html)
可以使用git status指令来查看删掉的文件,基本上都是 ***.xml 文件。这里就删除了一个,就是workspace.xml
4.总结
如果不想一不注意的就提示workspace.xml冲突的问题,那么在本地的.gitignore文件里面添加上.idea/workspace.xml 文件。直接创建代码库根目录下就行,或者忽略idea整个文件夹也行。
或者直接执行git rm -r --cached .idea/workspace.xml这样的命令,直接不用版本控制这些文件也可以。