【问题标题】:How to stop github from modifying my files (in workflow)?如何阻止 github 修改我的文件(在工作流程中)?
【发布时间】:2021-07-16 05:50:00
【问题描述】:

在 github.com 上,我有一个 6 字节的小文件 hello.txt,由“hello”和 newline 组成:1

在带有runs-on: ubuntu-18.04 的 Ubuntu-18 工作流程中,我们有:

但是在带有runs-on: windows-2019的Windows上,奇迹般地多了一个字节:2

如何去掉这个多余的字节?


更新:(回复James'快速回答)。问题来自于 Windows 和 Linux 的测试文件。如果我能有两个测试文件,我会很高兴,一个 hello.linux.txt 在 Linux 和 Windows 上都有 6 个字节,另一个文件 hello.windows.txt(可能是手动定义的)在各处都有 7 个字节。

老派的tar 可能会有所帮助。


1 我不知道 GitHub 为何放弃 .txt 扩展,但我是新手。
2 我们都可以假设额外的字节是carriage-return

【问题讨论】:

    标签: git github workflow github-actions carriage-return


    【解决方案1】:

    可以通过多种不同的方式配置行尾处理。

    我很确定当你在 Windows 上安装 git 时,会有一个弹出窗口询问你想如何处理 CRLF,但我已经有一段时间没有重新安装了。

    在此处查看官方文档以了解如何配置它:https://docs.github.com/en/github/getting-started-with-github/configuring-git-to-handle-line-endings

    来自 .gitattributes 选项的文档:


    • text=auto Git 会以它认为最好的方式处理文件。这是一个很好的默认选项。

    • text eol=crlf Git 将始终在结帐时将行尾转换为CRLF。您应该将它用于必须保留 CRLF 结尾的文件,即使在 OSX 或 Linux 上也是如此。

    • text eol=lf Git 将始终在结帐时将行尾转换为 LF。您应该将它用于必须保留 LF 结尾的文件,即使在 Windows 上也是如此。

    • binaryGit 会理解指定的文件不是文本,它不应该尝试更改它们。二进制设置也是-text -diff 的别名。


    【讨论】:

    • 谢谢你——这有效。当然,我花了一些时间阅读/理解 git 文档。为了尽量减少行为的任何变化,我在hello.txt 所在的目录中选择了一个单行.gitattributes 文件:* -text,因为该目录仅包含测试数据。
    猜你喜欢
    • 2020-04-11
    • 2021-09-28
    • 2021-08-31
    • 2020-10-08
    • 1970-01-01
    • 2021-03-15
    • 2010-12-28
    • 2020-03-12
    • 2021-05-20
    相关资源
    最近更新 更多