【问题标题】:git bisect in combination with CRLF/LFgit bisect 与 CRLF/LF 结合使用
【发布时间】:2017-08-30 19:10:36
【问题描述】:

我正在尝试 git bisect 在公共回购中的一些不良行为。

回购有:

  • 一些使用 CRLF 的提交(我在 MacOS 上,所以期待 LF)
  • .gitattributes file 在其根目录中,规范化 .c、.h 和 .java 文件

据我了解,目前的.git/config~/.gitconfig 都不重要,因为.gitattributes 具有优先权。

我的问题与此有关:当我使用 CRLF 检查提交时,本地文件会使用 LF 进行修改。这些文件在git status 上显示为已修改。然后,如果我尝试检查另一个提交,git 会拒绝以保护我的本地更改。很好。

checkout 的情况下,我可以用-f 强制它,然后继续。

问题是我似乎无法强制git bisect skip。如果我尝试,git 会告诉我存储更改。我无法获得干净的工作文件(无论如何,存储都会给我留下修改过的换行符),而且我无法跳过。

我尝试复制临时的.gitattributes 以使bisect 保持换行不变,但随后它抱怨.gitattributes 中的更改未保存。

有没有办法强制bisect

【问题讨论】:

  • 呃。我会尝试临时的.gitattributes 文件加上设置git update-index --skip-worktree,并希望在任何对分范围提交中.gitattributes 都没有更改。如果做不到这一点,请保留一个临时的.gitattributes,您可以换入和换出,换出以进入下一个平分,将其换回并git checkout -f 进行更新,等等。

标签: git newline gitattributes core.autocrlf git-bisect


【解决方案1】:

当前的 .git/config 或 ~/.gitconfig 都不重要,因为 .gitattributes 具有优先权

不是真的,gitattributes 的本地文件是.git/info/attributes,它优先于存储库中的任何.gitattributes 文件

【讨论】:

    猜你喜欢
    • 2020-10-16
    • 2014-10-30
    • 1970-01-01
    • 2020-07-26
    • 2014-09-05
    • 2010-12-08
    • 1970-01-01
    • 2013-01-24
    • 2017-12-12
    相关资源
    最近更新 更多