【问题标题】:How to run git rebase and ignore whitespace?如何运行 git rebase 并忽略空格?
【发布时间】:2014-06-25 15:36:19
【问题描述】:

我有一个分支,我有一个只修改空格(尾随空格和前导空格)的提交。

我运行了git rebase mastergit rebase --ignore-whitespace master,在这两种情况下我都与只更改了空格的提交发生了合并冲突。

【问题讨论】:

    标签: git git-merge


    【解决方案1】:

    我不能保证这会有所帮助,但你可以试试
    git rebase -Xignore-space-change master

    git rebase -Xignore-all-space master
    -X 将选项传递给合并算法,默认合并算法具有这些选项来影响其处理空白的方式。

    【讨论】:

    • 我无法确定-Xignore-space-change-Xignore-all-space 之间的区别......对于大多数项目来说,似乎有很多对空间敏感的语言。仅对某些文件扩展名忽略空格更改会很有用...
    • git 命令在以git rebase -Xignore-all-space --continue 运行时失败。
    • git pull -Xignore-all-space origin master --rebase 运行但仍然在空白差异上引发冲突,大概是行尾的东西......
    【解决方案2】:

    使用 Git 2.29(2020 年第四季度)更容易

    "git rebase -i"(man)learns a bit more options,包括合并时的--ignore-whitespace(2014 年 OP 使用该选项时不支持)。

    所以git rebase --ignore-whitespace master 现在可以工作了!

    参见Junio C Hamano (gitster)commit 6160b2e(2020 年 8 月 26 日)。
    commit 2712669(2020 年 8 月 17 日)和commit ef484ad(2020 年 7 月 13 日)Rohit Ashiwal (r1walz)
    请参阅 Phillip Wood (phillipwood)commit a3894aacommit 7573ceccommit e8cbe21(2020 年 8 月 17 日)。
    (由 Junio C Hamano -- gitster -- 合并于 commit 9c31b19,2020 年 9 月 3 日)

    rebase -i: 添加 --ignore-whitespace 标志

    签字人:Rohit Ashiwal
    签字人:Phillip Wood

    Rebase 是通过两个不同的后端实现的 - 'apply' 和 'merge' 每一个都支持一组不同的选项。

    特别是apply 后端支持许多由“git am(man)”实现的选项,这些选项没有merge 中实现后端。

    这意味着可用的选项会根据使用的后端而有所不同,这令人困惑。

    此补丁增加了对 --ignore-whitespace 选项到 merge 后端的支持。
    此选项将只有空白更​​改的行视为未更改,并通过将其转换为 -Xignore-space-change 在合并后端实现。

    git rebase 现在包含在其man page 中:

    --ignore-whitespace:

    尝试协调时忽略空格差异 差异。
    目前,每个后端都实现了这种行为的近似:

    apply 后端:应用补丁时,忽略上下文行中空格的变化。不幸的是,这意味着如果被补丁替换的“旧”行与现有文件仅在空白处不同,您将遇到合并冲突而不是成功的补丁应用程序。

    merge 后端:合并时将只有空格更改的行视为未更改。
    不幸的是,这意味着任何旨在修改空白且没有其他内容的补丁块都将被删除,即使对方没有发生冲突的更改。

    这个标志被传递给'git apply'程序

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-26
      • 1970-01-01
      • 2016-07-18
      • 2011-05-20
      • 1970-01-01
      • 1970-01-01
      • 2013-02-25
      相关资源
      最近更新 更多