2

我正在尝试为我们的组织制定补丁工作流程。我们有一个内部项目,我们不介意空格(如果可能,希望每个用户保持相同)、EOF/EOL 字符等。我们有开发人员在 Mac 和 Windows 平台上工作。在这两个地方,我们都使用 git 和 Cygwin。

在这里读到 core.autocrlf true 可以解决问题,或者您可以使用--keep-cr. 但这里 VonC 建议core.autocrlffalse是一个更好的策略。

我的问题是:

  1. 什么时候用真,什么时候用假?(我只是不想让 git 打扰我,补丁应该顺利应用)。
  2. 什么时候--keep-cr介绍的?我使用 git 1.7.2 并且手册页没有这个选项?
  3. 使用哪些忽略空白选项以实现平滑的补丁工作流程?
4

1 回答 1

3

1.7.2 应该有--keep-crgit am,因为它是由 Stefan-W在提交 ad2c928中引入的。哈恩,包含在 Git 1.7.1 中。

当您知道您将输出从“ git format-patch”直接提供给“ git am”时,尤其是当您的内容在行尾有 CR 时,这种剥离是不可取的。为了帮助这样的用例,--keep-cr将选项传授给“ git am”并将其传递给“ git mailinfo”。

但是,在 Windows 上,我总是使用最新的 Git For Windows 版本而不是 cygwin版本(即使你可以同时拥有两者)。

问题core.autocrlf在于它是一个存储库范围的设置,可以影响所有文件(甚至是非文本文件)。
我更喜欢core.eol指令

对于空格,您可以尝试“ git:patch does not apply ”:

git apply --ignore-space-change --ignore-whitespace mychanges.patch
于 2014-06-12T07:31:16.640 回答