一、Git提供了文件忽略功能。当对工作区某个目录或者某些文件设置了忽略后,git将不会对它们进行追踪
HELP:如何在IntelliJ IDEA中使用.ignore插件忽略不必要提交的文件
问题:最近在github做一个项目,每次成生成的log日志文件和本地IDE的.idea/workspace.xml,每次提交说没有跟踪文件,更郁闷的的我的项目有在本地虚拟机,有时候会出现没有权限跟踪文件。
今天特意解决下问题:
(1) 检查当前文件状态 要查看哪些文件处于什么状态,可以用 git status 命令,可以看出intellij idea 的文件.idea/workspace.xml 也提示没有被跟踪的信息
(2)如果已经不幸之前commit workspace.xml 的话,必须执行以下命令:git rm --cached .idea/workspace.xml
(3)现在我们通过git .gitignore文件,建立.gitignore文件,在项目根目录下创建一个名为.gitignore的文件(注意文件的前面有个点),用于记录忽略规则
注:windows下不可以按常规方法新建.gitignore文件,需要在命令行中进行创建:echo >.gitignore,另外git base下的命令如下:touch .gitignore
(4)编写忽略规则(由于IDE比较麻烦,我就直接使用git 客户端进行编辑了),添加的规则如下所示,针对.log为文件和.xml文件进行了忽略规则
更多规则可以连接这里:http://blog.csdn.net/yonnangel/article/details/50115059
(5)再次查看状态,已经不在跟踪的局域了,这说明你现在的工作目录相当干净。换句话说,所有已跟踪文件在上次提交后都未被更改过。
(6)总结:这样子就可以避免每次切换不同的分支而导致的都要跟踪一次日志文件和IDE的.idea/workspace.xml 文件(我都是git stash 的)
二、删除远程或者本地的一个文件
问题:还是上面的原因,因为我以前已经把日志文件提交到了github之上,现在要删除这个文件,以后不要在提交这些无用的文件了
(1)查看远程文件是结果如何删除这个远程文件来
(2)使用 Git rm 命令即可,有两种选择:
【1】一种是 git rm --cached "文件路径",不删除物理文件,仅将该文件从缓存中删除;
【2】一种是 git rm --f "文件路径",不仅将该文件从缓存中删除,还会将物理文件删除(不会回收到垃圾桶)
(3)在这里我们使用第一种,
先执行命令:git rm --cached .idea/workspace.xml 删除缓存文件
再查看当前工作区装填。操作后的结果如图所示
(4)最后直接,提交更新,同时push推送到github远端仓库
(5)再次查看git项目log文件,已经被删除掉了
错误问题,切换分支
error: Your local changes to the following files would be overwritten by checkout:
.idea/workspace.xml