移动存储库后,git diff报告模式发生变化
通过复制到外部硬盘驱动器,我将一堆git存储库移到了另一个操作系统。 而现在,当我做混合git diff
它报告所有文件模式已经改变。
diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
diff --git a/.npmignore b/.npmignore
old mode 100644
new mode 100755
diff --git a/.travis.yml b/.travis.yml
old mode 100644
new mode 100755
diff --git a/LICENSE b/LICENSE
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
我对文件权限并不十分了解,我应该怎么做呢?
提交模式更改? 将模式更改为所有非可执行文件? git重置?
可能您的外部硬盘驱动器上有不同的文件系统,并不尊重原始文件权限。 我只是在提交之前用手改正它们。
例如,USB拇指驱动器上常用的FAT32不支持执行权限。 当您将文件从FAT32文件系统复制到普通的类Unix文件系统时,它通常会为所有文件设置执行权限,因为这对文件关闭的损害要小。
如果您想保留这种信息,请勿将这些文件直接复制到驱动器; 相反,制作一个tar文件(可选压缩),然后在另一端解压缩它。 tar格式确实记录了Unix权限位。
请注意,git本身并不追踪可执行文件与不可执行文件。 如果模式更改是唯一的区别,并且您不想重新复制所有内容,则可以将git diff
的输出转换为脚本,然后在所有受影响的文件上执行chmod -x
。
您可以应用此设置
git config core.filemode false
导致git忽略文件模式的差异。
这个解决方案在@ kan对另一个问题的答案中找到
链接地址: http://www.djcxy.com/p/30027.html上一篇: git diff reporting mode changes after moving the repository