Git中文件属性的变化,被认为是文件有改动
问题描述:
1. 从公司的git服务器上, 下载最新的代码(zip格式), 解压缩出来,
2. 过一段时间, 去执行git pull代码, 出现如下情况:
$ git pull
Updating 37b895a..2e0fc7a
error: Your local changes to the following files would be overwritten by merge:
test.xml
root/upload/a.zip
Please commit your changes or stash them before you merge.
Aborting
分析问题:
出现这样的错误, 测试问题, git status后, 出现很多文件, 这些文件已经在git服务器上了, 下载下来的时候, 解压到本地后, 文件的读写权限更改, 导致出现问题.
解决问题:
直接修改git的config, 打开git的命令行(我用的是Git-2.9.3-32-bit.exe这个版本), 命令如下:
$ vi .git/config
会直接进入vim的编辑界面,(如果vim不会用的话,可以参考http://www.cnblogs.com/xumBlog/p/8533962.html),
或则直接打开.git/config文件, 做如下修改, 保存.
红色方框里的一行
filemode = true
这个代表: 当文件的mode变化的时候, git认为这个文件有修改, 得必须提交这个文件, 后续才能提交其他的文件.
所以把这行删除, 就可以了. 就可以提交其他的代码了.