gpt4 book ai didi

git - 在 Mac 上,行尾会自动设置为 Windows 行尾,我该如何更改?

转载 作者:行者123 更新时间:2023-12-03 21:42:46 26 4
gpt4 key购买 nike

每次我git commit任何我收到警告,我的文件有 Windows 行结尾,它们将更改为非 Windows 行结尾。我不知道为什么首先会发生这种情况,似乎我现在写入的每个文件都有 Windows 行结尾。如何将其改回使用 Unix 行尾?无论编辑器如何,这都会发生,它发生在 Vim 和 VS Code 中

最佳答案

VIM 和 VS Code 都识别文件使用的是 macOS/Unix 行尾(LF,例如 0a)还是 Windows 文件尾(CRLF,例如 0d 后跟 0a)并保留它。您可以使用终端hexdump命令并查看您的行是否由 0d 分隔0a或仅 0a .
最有可能的是,在首次创建文件时,它们与 Windows 换行符序列一起保存,而 VIM 和 VS Code 只是保留了该设置。

  • 在 VIM 中,当您打开/保存文件时,如果文件当前正在使用 Windows CRLF ,你会看到一点[dos]在底部的状态消息中。如果它已经是 unix 格式,你将看不到 [dos]那里。
    enter image description here
    在VIM中,如果是[dos]文件,您可以使用 :set fileformat=unix将其转换为 Unix 行尾字符,然后保存转换后的文件。见 Vim convert file from DOS to UNIX .
  • 在 VS Code 中,您可以设置 eol设置,但这只会影响新文件。同样,现有文件将保留文件最初使用的任何行尾设置。
    但是,如果您打开一个文件并查看状态栏,您将看到 LFCRLF向右。你可以点击它来回切换。
    enter image description here
  • 有关如何在 git 端处理的信息,请参阅 Configuring Git to handle line endings .我怀疑您可能想坚持现有的行为(更新到 Unix 行尾字符),但是您会在该 GitHub 文档中清楚地看到您的选项。但是如果你真的想在你的文件中保留 CRLF,你可以相应地配置你的 repo。

  • 根据您拥有的文件数量,您可能需要找到一种工具来将 Windows/DOS 行尾 CRLF 序列转换为 Unix/macOS LF 字符。快速的 StackOverflow 或网络搜索无疑会给你很多建议。
    或者,听起来您的存储库已经更新为 Unix 样式的 LF 字符,因此您可能只想 pull 并使用它。

    关于git - 在 Mac 上,行尾会自动设置为 Windows 行尾,我该如何更改?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66555756/

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