git 和 CR 与 LF(但不是 CRLF)

2024-03-13

这听起来像是一个多余的问题(而且很可能是一个多余的问题),但我找不到答案。情况是这样的:

我的应用程序正在创建以 CR 作为行结尾的文本文件。更具体地说,我没有明确地将行结尾设置为 CR,它恰好是我用来获取文本正文的命令的输出。当然,我可以手动将 CR 转换为 LF,但如果可以避免的话我不想这样做。

Git 将这些文件视为一行(例如在比较期间)。我通过这个测试存储库确定行结尾是原因:https://github.com/jfletcher4d/diff-test https://github.com/jfletcher4d/diff-test

我实际上并不关心文件系统上的行结尾是什么。这并不重要,至少现在还不重要(我最终可能会关心是否需要导入这些文件,现在只是导出)。但是我愿意not如果我可以避免的话,出于性能原因以及肛门保留原因,我想在我的应用程序中将 CR 转换为 LF :) 即这不是如何创建文本文件的问题,而是如何强制存储库中的每个文本文件仅包含 LF 的问题。

git可以配置更改吗all行结尾为 LF,即使文件是用 CR 提交的?

我在 Windows 上,在学习 git 时交替使用 TortoiseGit 和 msysgit(还有一点 TortoiseSVN),如果这很重要的话。


Git 似乎不支持 CR 行结尾,所以我会写一个filter http://man.github.com/git/gitattributes.html#_tt_filter_tt转换换行符。工作树中的文件将以 CR 行结尾,并且在索引时将透明地转换为 LF。该过滤器有两个部分:“clean”检入文件,“smudge”检出文件。

使用这个.git/config:

[filter "cr"]
    clean = tr '\\r' '\\n'
    smudge = tr '\\n' '\\r'

And .git/info/attributes (or .gitattributes如果应该进行版本控制)

* filter=cr

请注意,这会自动使git-diff很高兴,因为它将使用“干净”版本。

请记住将模式设置为您需要的文件,否则二进制文件将被损坏,并且所有文本文件将以 CR 行结尾检出。

另请注意,如果未配置过滤器,它将默默失败,因此在设置存储库的新副本时添加配置行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

git 和 CR 与 LF(但不是 CRLF) 的相关文章

  • 不同GIT版本的GIT合并结果不同

    在不同的 GIT 版本上运行 merge 命令我们得到不同的结果 命令是 git merge no ff origin master codeline Results 版本2 1 4 gt 合并成功 版本1 7 1 gt 同一提交上的同一合
  • 即使给出了公钥,Gitosis 也需要密码

    我在 Archlinux 上尝试配置 gitosis 时遇到了一些问题 http wiki archlinux org index php Setting Up Git ACL Using gitosis http wiki archlin
  • 在 git 中编辑分支?

    我在 github 网站上创建了一个分支 该分支不在我的本地存储库中 如何将该分支带到我的本地计算机 对其进行编辑 然后将其推送回我的 github 帐户 在本地工作目录中输入 git fetch origin newbranch git
  • 让“git pull”在拉取不同分支时要求确认

    当同时处理许多项目和分支时 我偶尔会犯一些愚蠢的错误 比如拉入错误的分支 例如在分支上master I did git pull origin dangerous code并且有一段时间没有注意到这一点 这个小错误造成了很大的混乱 当我尝试
  • 如何仅对暂存内容运行 git 预提交检查?

    Suppose git status给出这个 On branch X Changes to be committed use git reset HEAD
  • GitHub Web UI 中的“base”和“head”存储库是什么?

    GitHub 的 UI 相当不直观且考虑不周 所以这里有一个问题 什么是 头 回购 什么是 基础 回购 不知道是从哪一个抄来的 基础 和 头部 这两个词的意思是相同的 链表的 头 类似于树的 基 GitHub 有叉树和文件树 Head 和
  • 克隆存储库时出现 Git 冲突复制错误

    我使用 dropbox 作为 git 存储库 现在由于同步中的一些问题 git 中存在一些冲突的副本 我该如何消除这种冲突 由于这种冲突 我无法克隆该存储库的内容 我在克隆存储库时遇到的错误是 Git 致命 参考格式无效 refs head
  • 使用子模块克隆存储库:覆盖凭据

    我必须automate克隆存储库并获取它的所有子模块 存储库子模块的 url 指定于 gitmodules 如果我要使用默认值 我就会这样做 git clone recursive https username email protecte
  • 如何将 man 和 zip 添加到 Windows 上的“git bash”安装中

    我在用git bash https git for windows github io 在 Windows 上 即git对于 Windows 通过集成bash 显然它使用的是MINGW MSYS支撑 来自 VonC 的更新 现在使用 msy
  • 在 VS Code 中找不到 Git

    由于某种原因 我在 Windows 10 笔记本电脑上运行的 VS Code 中找不到 Git 在我的 Mac 上 当你一直向下滚动时 用户默认设置 中会出现一个 Git 但在我的 Windows 10 笔记本电脑上 它根本不存在 源代码管
  • 如何在保留历史记录的同时将 git 存储库重新设置为父文件夹?

    我有一个 git 仓库 foo bar baz具有大量的提交历史和多个分支 我现在想要 foo qux位于同一个仓库中 foo bar baz 这意味着我需要它们都位于植根于的存储库中 foo 但是 我想保留我所做的更改的历史记录 foo
  • git 无法暂存文件,将所有文件显示为重复,但字符大小写不是问题

    就我而言 我对我的文件之一进行了简单的一项更改 并想提交我的更改 但注意到 commit am 没有添加 提交该文件 发出 git 后ls files stage 我看到项目中的所有文件可能都显示为重复项 这是其中一个文件的示例 10064
  • 在 PowerShell 错误消息中使用 touch 命令创建新文件

    我的桌面上有一个使用 PowerShell 创建的目录 现在我尝试在其中创建一个文本文件 我确实将目录更改为新目录 然后输入touch textfile txt 这是我收到的错误消息 touch The term touch is not
  • 从 Jenkinsfile 中获取有关其他分支的信息

    Jenkins Blue Ocean 与链接的 Bitbucket Server 实例在同一本地网络上运行 Jenkins 中的多分支项目能够为本地 Bitbucket 服务器上链接的 Bitbucket 存储库的每个分支创建一个分支 但在
  • 错误:GitHub 目前无法显示这么大的文件 - 但该文件只有 1.06 MB [已关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我通过两种不同的方式将 HTML 文件上传到 GitHub 存储库 拖放以及使用终端上的 Git 添加 提交 推送 在这两种情况下
  • Git - 包含来自其他存储库的文件

    对于 Git 我想包含一些常见的 JS CSS 库和 或实用方法 即来自另一个存储库的特定文件 在我的项目中 我希望它们始终是最新的 我真的不想要整个远程存储库 如果我可以处理远程文件的 本地副本 并将更改推送回来 那就太好了 一个有点类似
  • 如何更改 Bitbucket 中的 git 提交消息?

    我需要更改 Bitbucket 中的旧 git 提交消息 我试过git rebase i并重写了我的消息 但是当我拉取并提交时 它只是将旧消息保留在 Bitbucket 中并合并了我的更改 这基本上是 4 个步骤的过程 但如果多个团队成员在
  • 有没有一种方法可以非交互地压缩大量提交?

    我正在尝试压缩一系列提交 HEAD 到 HEAD 3 有没有一种快速的方法可以做到这一点 或者我需要使用 rebase interactive 确保你的工作树是干净的 然后 git reset soft HEAD 3 git commit
  • 如何在 VS Code 中仅提交跟踪文件?

    git status 显示以下三个信息 要提交的变更 分阶段变更 未暂存提交的更改 未暂存更改 未跟踪的文件 我曾经git commit a 它提交 1 和 2 然而VS代码Commit All提交 1 2 和 3 Commit Stage
  • 如何为新的 eclipse (neon) java 项目初始化 git

    我安装了 eclipse Neon 的新副本 并在一个新的闪亮工作区中创建了一个新的 gradle java 项目 将 git 添加到聚会中的最佳实践是什么 我读到在项目目录中初始化 git 是真是个坏主意 https stackoverf

随机推荐

  • Kubernetes资源文档中的M和Mi有什么区别?

    阅读 Kubernetes 文档 https kubernetes io docs concepts configuration manage resources containers https kubernetes io docs co
  • 使用 Microsoft Graph 列出 Microsoft Sharepoint 站点

    我正在使用 Microsoft Graph 使用 Microsoft OneDrive 和 Microsoft Sharepoint 据我了解 从登录用户获取文件列表的 URLOneDrive is v1 0 me drive root c
  • 如何隐藏mapbox-gl中所有打开的标记弹出窗口?

    我找不到隐藏所有打开的标记弹出窗口或什至检查标记弹出状态的方法 我会想getPopup isOpen 可以让你检查状态 并且getPopup remove 在迭代某个数组中所有存储的标记时运行 将完成您在这里所需的操作
  • Minimax/ Alpha beta 剪枝移动顺序?

    我读过 例如 http radagast se othello Help order html http radagast se othello Help order html 首先搜索每个级别的最佳动作 可以使用迭代加深找到 使得搜索速度
  • 如何在heroku中运行“Rails Runner”?

    这就是我想做的 查找是否有人在推特上发布过有关所提供的特定课程的推文 如果有人确实发布了相关推文 我想将该推文保存到我的推文模型中 然后在相应的课程页面中显示该推文 这些脚本通过运行在本地运行rails runner get tweets
  • transitiveMemberOf $filter 仅当您是直接成员时才有效

    我正在尝试使用 Graph 来查明用户是否是某个组的传递成员 例如 Bob 是 Marketing 的成员 而 Marketing 是 Company 的成员 Bob 是 Company 的成员吗 If I do me transitive
  • 如何在 FastAPI 的 CORS 中间件中正确使用正则表达式?

    我有一个使用 FastAPI 后端和 Next js 前端的应用程序 在具有稳定来源的开发和生产中 我能够毫无问题地使用 CORSMiddleware 不过 我已经使用 Vercel 部署了 Next js 前端 并且希望利用 Vercel
  • 提取“/”前后的字符

    我试图提取 之前和之后的字符 但没有成功 句子是 XXXX YYY ZZZ AV HAHEHRS 3061 SDDW ASDA DDSF SAO JOSE DOS CAMPOS SP CEP 00000 000 输出应该是 SAO JOSE
  • PDFBox:处理非常大的 PDF。

    我正在处理一些非常大的 PDF 有些大小超过 7GB PDF 最多有 20 000 页和许多整页彩色图像 我想使用 PDFBox 来处理 PDF 但由于大小 当我尝试打开 PDF 时 出现 OutOfMemoryError 我正在使用版本
  • 如何用一个元素创建 3D 透视图像?

    I have a code that given an image does the effect of perspective in 3D This is the result 这是代码 thumb margin 100px perspe
  • 混合 http/https 站点

    到目前为止 我的 https 部署通常涉及使用 https 对整个站点进行简单锁定 并在 Web 服务器上提供 http 到 https 的重定向 我现在计划拥有一个 ASP NET MVC 站点 在云上 其中包含 http 和 https
  • Firebase 身份验证令牌过期时间

    我刚刚升级到新版本的 Firebase 但找不到在哪里可以设置 Firebase 身份验证令牌的过期时间 它曾经位于 Firebase 旧布局中的身份验证部分下 我将其设置了 1 年 Firebase 还有这个吗 如果您继续使用 Fireb
  • 0x7f 有什么特别之处?

    我正在阅读 avro 格式规范并试图了解其实现 下面是解码的方法长值 https avro apache org docs 1 8 2 spec html schema primitive Override public long read
  • 为什么局部函子不好?

    例如 如果谓词仅使用一次 那么在主函数中声明类加倍器有什么问题 include
  • 如何停止 docker pull

    我刚刚开始学习docker 在教程中 我看到了 docker pull 命令 可以像这样使用docker pull container name从 docker hub 存储库中提取相应的容器 But in case if you canc
  • HDFS 复制因子更改

    如果集群中的复制因子发生变化 例如从 5 更改为 3 并且集群重新启动 旧文件块会发生什么情况 它们是否会被视为过度复制并被删除 或者复制因子仅适用于新文件 这意味着旧文件块被复制 5 次 新文件块 重新启动后 被复制 3 次 如果集群不重
  • 为什么在定义具有 0 个输出的 MATLABContainers.Map 子类方法时出现“太多输出参数”?

    我试图通过子类化 MATLABContainers Map 类并添加具有 0 个输出的附加方法来扩展它 但在执行该方法时遇到 输出参数太多 错误 这并不是新方法实现所特有的 任何使用 0 输出扩展Containers Map 的其他方法都会
  • GraphQL 嵌套查询定义

    我正在尝试为我的查询创建树状结构 以摆脱像 peopleList peopleSingle peopleEdit peopleAdd peopleDelete companyList companySingle companyEdit co
  • Ruby 中有 nvl() 函数还是我必须自己编写它?

    我想使用 Oracle 的等效项nvl Ruby 中的函数 是否有内置函数或者我必须自己编写一个 Edit 我用它来将一些 sql 重写为 ruby INSERT INTO my table id val VALUES 1 nvl my v
  • git 和 CR 与 LF(但不是 CRLF)

    这听起来像是一个多余的问题 而且很可能是一个多余的问题 但我找不到答案 情况是这样的 我的应用程序正在创建以 CR 作为行结尾的文本文件 更具体地说 我没有明确地将行结尾设置为 CR 它恰好是我用来获取文本正文的命令的输出 当然 我可以手动