gpt4 book ai didi

git - 为什么 git windows 版本的行为与 linux 版本的地址行结束不同?

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

我已经提到了 https://help.github.com/articles/dealing-with-line-endings/#platform-linux并在 .gitattributes 中设置 * text=auto

这是我遇到的问题:

git 存储库设置在网络驱动器上,我可以通过 windows 或 Linux 访问它。如果我运行 git.exe(版本 2.5.3.windows.1),我会看到许多未暂存的文件。

git.exe diff HEAD

但是,如果我在 linux 下运行 git(ver 2.5.3),我将看不到任何未暂存的文件。

Windows Git 报告差异的原因是未暂存的文件以 linux 结尾,而提交的文件以 windows 行结尾。

问题> 为什么不同版本的Git在这里报不同的结果?

谢谢

最佳答案

使用 text=auto,git 将在 Windows 上以 LF 结尾提交并以 CRLF 结尾 checkout ,但在 Linux 上仅使用 LF。如果一些克隆者使用 Windows 而其他人使用 Linux,这会很好地工作,但如果不同的操作系统共享一个网络驱动器,他们将不同意工作副本中的行结尾应该是什么。

如果你添加文件,你应该得到每个文件的消息:

warning: LF will be replaced by CRLF in my-file.txt.
The file will have its original line endings in your working directory.

Git 会在您提交时自动处理行尾,因此您实际上不需要做任何事情。但是如果你想防止行尾不匹配阻塞 git statusgit diff 等的输出,你可以更改你的 .gitattributes 以对所有内容使用 LF(假设这不会在 Windows 上破坏任何东西):

* text eol=lf

关于git - 为什么 git windows 版本的行为与 linux 版本的地址行结束不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34909477/

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