1. 现象
old mode 100644
new mode 100755
2. 原因
在拷贝 Git 仓库时,出现 old mode 100644 new mode 100755
的提示,这通常是因为文件权限发生了变化。具体来说:
-
100644
表示文件是普通文件(regular file),权限为-rw-r--r--
。 -
100755
表示文件是可执行文件(executable file),权限为-rwxr-xr-x
。
Git 会跟踪文件的模式(mode)变化,包括文件权限的变化。当你从一个仓库拷贝到另一个仓库,或者在不同的系统之间传输文件时,文件权限可能会发生变化,从而导致 Git 检测到这些变化并记录下来。
3. 解决方法
3.1 忽略文件权限变化:
如果你不关心文件权限的变化,可以在 Git 配置中设置忽略文件权限的变化。这样做可以避免每次提交时都看到这些变化。
git config core.fileMode false
这个配置会告诉 Git 忽略文件权限的变化。
3.2 恢复文件权限:
如果你希望恢复文件的原始权限,可以使用 git checkout
命令来恢复文件的权限。
git checkout -- <file>
这将恢复文件的权限到最近一次提交的状态。
3.3 手动修改文件权限:
如果你希望手动修改文件权限,可以使用 chmod
命令。
chmod 644 <file> # 设置为 -rw-r--r--
chmod 755 <file> # 设置为 -rwxr-xr-x
3.4 重新clone仓库:
如果整个仓库的文件权限都发生了变化,可以重新git clone仓库,而不是从别的地方拷贝仓库
4. 注意事项
- 忽略文件权限变化可能会导致一些安全问题,因为某些文件可能需要特定的权限来保护其内容。
- 在跨平台协作时,文件权限的变化可能会导致一些问题,特别是在 Windows 和 Unix 系统之间。
根据你的具体需求和项目情况,选择合适的解决方法。