如何避免 git-apply 更改行结尾

2024-04-23

我有一个 git repo 设置core.eol=crlf, core.autocrlf=true and core.safecrlf=true.

当我应用另一个补丁时crlf存储库和我的存储库中受影响文件的所有行结尾都更改为lf。目前我正在应用补丁,如下所示:

git apply --ignore-whitespace mychanges.patch

(看来我必须使用--ignore-whitespace以使补丁成功应用。)

我目前的工作是运行unix2dos在文件上。有没有更好的方法让 apply 符合我的 eol 设置?


检查 Git 2.14.x/2.15 中问题是否仍然存在(2015 年第 3 季度)

See commit c24f3ab https://github.com/git/git/commit/c24f3abaceabb590125751a67ec0e32946780ac7 (19 Aug 2017), and commit 2fea9de https://github.com/git/git/commit/2fea9de61857986431982ae89c01c89a2fc10038 (13 Aug 2017) by Torsten Bögershausen (tboegi) https://github.com/tboegi.
(Merged by Junio C Hamano -- gitster -- https://github.com/gitster in commit a17483f https://github.com/git/git/commit/a17483fcfe313e9ff5b9b0eb8245605fe7f66ea7, 27 Aug 2017)

apply:使用 CRLF 提交的文件应该往返 diff 并应用

当文件已使用 CRLF 提交时,但现在.gitattributes says "* text=auto" (or core.autocrlf is true),以下不 往返,git apply fails:

printf "Added line\r\n" >>file &&
git diff >patch &&
git checkout -- . &&
git apply patch

在应用补丁之前,工作树中的文件被转换 转换为索引格式(干净过滤器、CRLF 转换等)。
这里,当使用 CRLF 提交时,不应转换行结尾。

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

如何避免 git-apply 更改行结尾 的相关文章

  • 推送到 Git (GitLab) 时出现错误 401

    我收到错误 Total 4 delta 2 reused 0 delta 0 error RPC failed result 22 HTTP code 401 当推送到 GitLab 上的 git 存储库时 它曾经有效 我遇到了同样的问题
  • 如何修复 git 中的“警告:忽略名称损坏的引用”?

    我正在 OSX 上工作 在特定的存储库中 每当我在输入 git 命令后按 Tab 键自动完成 git diff clicks tab 我现在看到大量警告 warning ignoring ref with broken name refs
  • Git - -m 是什么意思 [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions In Gi
  • Github 贡献图中未显示进度?

    我在 github 中的存储库是公开的 当我通过命令行将文件从本地系统推送到 github 时 新贡献不会显示在贡献直方图中 但是 当我将任何文件直接添加到 github 的存储库中时 贡献会显示在直方图中 这是什么原因呢 一个可能的原因是
  • Git 中“瓷器”一词是什么意思?

    瓷器 一词偶尔出现在 Git 文档中 这是什么意思 瓷器 是通常制造厕所 有时也制造洗脸盆等其他固定装置 的材料 这与 管道 实际的管道和排水管 不同 在 管道 中 瓷器为管道提供了更用户友好的界面 Git 类比地使用这个术语 将用户通常不
  • Git checkout 分支从其他分支留下目录树

    我有一个branch2 其源是branch1 并重命名了源自branch1 的目录 当签出branch1时 重命名的目录仍然存在 但没有标记为未暂存的修改 重命名的目录当然不会作为branch1 上的提交出现 为什么会出现这种情况 上述目录
  • 我们如何从团队项目中的所有 Git 存储库连接到 TFS?

    我正在运行最新的 Visual Studio 2013 Ultimate 和 Update 1 我们也有最新的 Team Foundation Server 2013 我们中的一些人对新的 Git 存储库集成感到非常兴奋 但似乎有一个相当大
  • git:显示所有已修改的文件 - 已暂存和未暂存

    我需要一个命令给我所有修改过的文件 这包括暂存 即新添加的文件 和非暂存更改 在普通列表我可以在脚本中使用它 虽然这个问题可能听起来很熟悉 但我只找到接近我想要做的命令 git ls files m 列出 非分阶段 修改但忽略了上演的和新的
  • 两个人同时在 git 中处理一个文件[重复]

    这个问题在这里已经有答案了 可能的重复 当两个对等点同时将更改推送到同一个远程时 git 如何工作 https stackoverflow com questions 4643998 how git works when two peers
  • Docker 错误:无法找到包 git

    我正在使用图像nginx这是基于dockerfile ubuntu 连接到 docker 容器的 shell docker exec it
  • Git 大文件存储与 Google 云存储

    我是该项目的一部分 我们使用 git 存储库托管在谷歌云源代码库 https cloud google com source repositories 现在我们使用谷歌云存储 https cloud google com storage 存
  • 从 bazaar 转换为 git 并同步它们的正确方法

    我在 bazaar 中有一个开发存储库 我想将其转换为 git 并保持同步 我需要这个 因为我将与不了解 bazaar 的人分享我的代码 首先我需要将我的 bazaar 存储库转换为 git 我用谷歌搜索了一下 发现this http as
  • git commit 给出错误:空提交集已通过

    当尝试恢复到以前的提交时 我尝试了 git revert no commit 0766c053 HEAD 然而这给出了一个错误 empty commit set passed 问题 该错误是什么意思 以及出了什么问题revert命令 删除
  • Git Grep 颜色选项解释和/或比较

    我正在尝试自定义我的 Git 颜色 读完后文档 https git scm com docs git config 我找到了我想要设置的选项 除了 Grep 之外 一切都工作正常 我意识到 我过去并没有真正使用过它 我想用相同的调色板为其设
  • 使用 Git 和 Eclipse 管理 Android 项目

    我相信我有一个非常常见的问题 它会影响具有多个应用程序版本的开发人员 在我的例子中 我有两个 付费版本和免费版本 为了管理这两个版本 我使用具有 2 个不同分支的同一个 git 项目 免费和付费 然而 我的源代码包名称彼此不同 如预期 并且
  • git merge,保留两者

    为了合并 我用它来 保留我的 git merge X ours foo 这是 保留他们的 git merge X theirs foo 然而 在我最近的合并中 看起来最好保留双方 Git 是否有一个 策略 来避免手动编辑文件 没有解决这些冲
  • 将生成的文件存储在 Git 中

    我们有一个相当大且过于混乱的代码库 我们希望使用 Git 进行迁移 目前 它是一个大的整体块 不能轻易地分割成更小的独立组件 该代码构建了大量共享库 但它们的源代码如此交错 目前无法将其干净地分离到单独的存储库中 我不太关心 Git 是否可
  • 如何在 NetBeans 中执行“git Blame”?

    NetBeans 内置了对 git 的支持 我可以做一个git blame在 NetBeans 内 如果是这样 怎么办 I googled https www google nl search q netbeans git blame它 但
  • git 奇怪的彩色终端响应[重复]

    这个问题在这里已经有答案了 最近我被下面的彩色终端响应吓死了 它是由 git push 命令触发的 Does anybody have a clue where this colored response comes from 只是猜测 但
  • Git Bash Shell 可以使用默认的 Windows 快捷方式进行复制和粘贴吗?

    我希望能够使用 Ctrl C 和 Ctrl V 复制并粘贴到 Git Bash Shell 中 但是 shell 具有 Ctrl Insert 和 Shift Insert 作为这些操作 我没有看到更改这些快捷键的明显方法 我错过了一些明显

随机推荐