gpt4 book ai didi

git - 所有文件在 Ubuntu 中取消暂存,但在 Windows 中不

转载 作者:太空狗 更新时间:2023-10-29 14:08:12 25 4
gpt4 key购买 nike

当使用 Ubuntu 时,我所有的文件都在 Git 中取消暂存。

当我运行 git diff 时,Git 显示:

--- a/<filename>
+++ b/<filename>
-<output of file>
+<output of file>

例如,

--- a/.gitignore
+++ b/.gitignore
-.tmp
-build
-node_modules
+.tmp
+build
+node_modules

但是,当我在 Windows 中使用 Git 时,Git 会正确显示状态(所有文件已提交和暂存)

关于如何解决这个问题有什么想法吗?

我在 Ubuntu 和 Windows 中使用与 Git 存储库相同的分区,因为它是 FAT32,Ubuntu 会自动挂载该分区。

最佳答案

这听起来像是 CRLF 问题。 Windows 使用 CRLF 来表示行尾,而 Linux 仅使用 LF。 Git 本身只使用 LF。当您从 Windows 切换到 Linux 时,git 认为文件已更改,因为它认为不必将每行结尾的 CRLF 转换为 LF,因此文件会获得额外的 CR 字符。

查看此 blog post on the subject进行广泛的讨论。

这全部由 core.eol 配置选项控制。通常,这被设置为 native,它告诉 git 使用您的操作系统 EOL 约定。你最好的选择是创建一个 .gitattributes 文件作为帖子指定的,告诉 get 使用 LF 而不管操作系统。

关于git - 所有文件在 Ubuntu 中取消暂存,但在 Windows 中不,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18488329/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com