我在最近的 Web 项目中使用 FTP。我尝试使用 git 对 FTP 上的所有更改进行本地备份。似乎 FTP 服务器不支持 MFMT 命令(或者我弄错了其他一些东西),下载的文件不保留它们的时间戳。
当我对新下载的文件执行 git diff 时,Git 会将每个文件标记为已更改。
无论如何我可以告诉Git根据差异结果而不是时间戳提交吗?
我在最近的 Web 项目中使用 FTP。我尝试使用 git 对 FTP 上的所有更改进行本地备份。似乎 FTP 服务器不支持 MFMT 命令(或者我弄错了其他一些东西),下载的文件不保留它们的时间戳。
当我对新下载的文件执行 git diff 时,Git 会将每个文件标记为已更改。
无论如何我可以告诉Git根据差异结果而不是时间戳提交吗?
Git 只查看文件的内容来确定它是否被更改。如果内容相同,则不关心时间戳。确保内容确实没有任何变化,包括行尾。autocrlf
如果是这样,请尝试根据您的操作系统设置正确的配置。
另一种可能性是文件权限被更改为 FTP 进程的副作用。内容相同但权限不同的文件被视为被 Git 修改。
如果您在不同的操作系统之间移动文件,这种情况尤其可能发生。我遇到过使用 USB 记忆棒在 OS X 和 Windows 之间移动文件的情况。
我有同样的问题(Windows 8.1 Enterprise,git 版本 1.8.4.msysgit.0)。我不能拉,因为有 7 个文件被修改,尽管二进制(包括 lineendings)相同。还原没有帮助。将报告为已修改的第一个文件的时间戳更改为修订时间(在 TotalCommander 中,精度为 1 秒)使拉取工作。存储库是由旧磁盘上的文件复制创建的。我还做了几个原始存储库的克隆,还有其他“不同”的文件。
希望这将帮助其他人解决这个问题。这可能是Turtoise的问题。
顺便说一句:请先测试 lineending,因为这是一个更常见的问题。