Windows 有人能解释一下原因吗;“git状态”;在linux上的共享下运行时是否将文件显示为已修改?
这些文件托管在一台windows计算机上,我想知道我是否冷用我的Linux机器来管理git,所以我安装了共享。然后我看到,当执行git状态时,所有文件都显示为已修改,当尝试从该共享推送时,它不会接受我的密钥 图像同时来自同一快照、同一文件夹。 Linux------------------------------------------winGitBashWindows 有人能解释一下原因吗;“git状态”;在linux上的共享下运行时是否将文件显示为已修改?,windows,linux,git,Windows,Linux,Git,这些文件托管在一台windows计算机上,我想知道我是否冷用我的Linux机器来管理git,所以我安装了共享。然后我看到,当执行git状态时,所有文件都显示为已修改,当尝试从该共享推送时,它不会接受我的密钥 图像同时来自同一快照、同一文件夹。 Linux------------------------------------------winGitBash 您是否检查了这两台机器上的crlf设置?一个可能正在将文件重新创建为CRLF(Windows),而另一个只有LF结尾。对于“修改”状态而言,
您是否检查了这两台机器上的
crlf
设置?一个可能正在将文件重新创建为CRLF(Windows),而另一个只有LF结尾。对于“修改”状态而言,这就足够了
不要忘记您的个人设置以及回购设置。很好地解释了这一点。基本上,最好设置:
git config--global core.autocrlf true
git在newline上的行为取决于几种配置:
- core.eol
- core.autocrlf
- .git属性文件
- 在git“数据库”(.git)中,所有文本文件都以换行符
存储李>LF
- 在签出git转换期间,您的本地repo在Windows下被克隆
进入LF
李>CRLF
- 当您在Linux/cygwin下执行
git状态时,因为“cygwin-git”认为它正在工作 在“*inux”环境下,所以git认为本地回购应该 使用
签出文本文件。当它实际找到LF
时,它认为CRLF
已从CRLF
更改,因此git报告它们已修改LF
# under linux
# save your change
git stash
# delete working directory
git rm --cached -r .
# re-checkout
git reset --hard
然后再次运行git status
,您将/应该看到输出报告没有修改
参考资料:
git diff怎么说这些文件中有修改?