【发布时间】:2016-05-02 02:02:19
【问题描述】:
我有一台 Windows PC,在同一台 PC 上我在 VMWare 播放器中有一个 Lubuntu VM。
我共享我的 Windows 文件夹,以便我可以从 Lubunutu VM 中查看它们。
我的问题是,当我在 Windows 上克隆一个 Git 存储库(使用 Tortoise Git)然后尝试从 Lubuntu 访问它(使用命令行中的 Git)时,所有文件都显示为已修改,尽管我没有更改它们。
我知道这样做的原因是 Windows 和 Linux 处理新行的方式不同。
我的问题是如何在 Windows 和 Lubuntu 上配置我的 Git 安装,这样我就没有这个问题了?
更新:
正如 Craig Estey 所建议的那样,这似乎不是 CRLF 问题。我尝试在共享目录上克隆我的 Linux VM 中的存储库并收到以下错误:
fatal: 'origin' does not appear to be a git repository
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.`
在虚拟机的本地驱动器上克隆相同的存储库没有问题。
知道可能是什么原因吗?
注意:我想这样做的主要原因是保持我的 VM 的驱动器大小较小并尽可能使用共享驱动器。我的 VM 的本地驱动器位于 SSD 驱动器上,而共享驱动器位于更大的 HDD 上。
【问题讨论】:
-
AFAIK,换行符不是的问题。 git 不会在任何系统上将
\n更改为\r\n。如果一个文本文件有 CRLF,它将在所有系统上都有。更有可能的是,以这种方式共享 working 目录存在问题。仅共享 repo 文件可能会更好。但是,我会让 linux 托管 repo [非共享] 并让 windows 进行拉取,每个都有一个单独的私有工作目录。共享 [与 samba] 似乎有问题。如果您真的想要这个,请创建一些测试存储库并创建一些文件以先查看它。 -
这更可能与时间戳或权限有关,而不是 CRLF 问题。或者,两个不同的系统尝试从两个仅半兼容的不同虚拟机同时访问 repo 或工作目录时出现文件锁定问题
-
你可以尝试从
git config --global core.autocrlf false开始吗?