【Debug-git】error:. local changes to the following files would be overwritten by merge:.idea/misc.xml

公司、个人编译环境可能是有某些不为人知的差异,每次用git命令pull的时候,总会遇到一些奇葩问题,比如:

...done.
Resolving deltas: 100% (55/55), completed with 29 local objects.
From https://git.xxxx.xxx/xxxxxxxx/xxxxxx
 * branch            master     -> FETCH_HEAD
   9******..******d  master     -> origin/master
error: Your local changes to the following files would be overwritten by merge:
        .idea/misc.xml
Please commit your changes or stash them before you merge.
Aborting
Updating 9******..******d

前两次因为时间的原因,要么把这个被覆盖的“.idea/misc.xml”本地文件删掉,要么直接生气了删掉本地项目重新clone。

这终究不是一个办法,今天解决一下吧。

首先,这个文件是什么?

【.idea/misc.xml】

知乎上的一个回答是酱紫的:

.idea  #ide 相关
*.apk  #optional

是在系统默认的.gitignore文件基础上额外添加的,如果不加 .idea的话会存在不同开发人员开发机上.idea/下文件不同,导致需要提交的问题。而且经过我和团队小伙伴之间的实践.idea目录下的东西AS都会自动生成,并不需要提交到仓库中

打开看一眼这个文件里都有啥:



  
    
    
  
  
    
  
  
    

 

【.idea/modules.xml】

这个文件告诉编译器你要有哪几个子项目,不分主次。在Android Studio中打开看一眼:



  
    
      
      
      
    
  

 

【根目录.iml】

iml文件是一个工程配置文件。这个文件的作用见如下注释部分:



  
  
    
    
      
      
    
    
    
    
  

这几个文件中,【根目录.iml】文件没什么争议,一般需要放进【.gitignore】中让git自动忽略,但【根目录.idea】文件夹下的文件我的git只忽略了两个文件,我的“.gitignore”文件默认忽略的是:

*.iml
.gradle
/local.properties
/.idea/workspace.xml
/.idea/libraries
.DS_Store
/build
/captures
.externalNativeBuild

查了一下,2015年之前早期的回答中,大家配置的忽略文件都比较多,【.idea/misc.xml】【.idea/modules.xml】都在“.gitignore”之列,更有甚者整个【.idae】文件夹都在忽略之内。而近期的回答中,基本与本人的“.gitignore”无异。鉴于上文知乎科学家的建议,本人试一下把这两个文件手动添加到“.gitignore”之列试试。

/.idea/misc.xml
/.idea/modules.xml

先这么着吧~

你可能感兴趣的:(Debug)