代码之家  ›  专栏  ›  技术社区  ›  Andrew Grimm atk

如何在不接受所有文本更改的情况下使Git接受模式更改?

  •  33
  • Andrew Grimm atk  · 技术社区  · 15 年前

    我有个相反的问题 “ How do I make Git ignore file mode (chmod) changes? 他说:“这是一个很好的选择。” 我有一个文件,我已经更改了可执行权限,但也有 有些文本会更改,我想提交前者,但不提交后者。这是吗 可以用Git吗?

    (实际上,我已经做了一些文本更改,我想与 可执行权限更改,以及其他我不想提交的内容)

    更新: 取消文本对文件的更改,然后执行 git add -p 再次合并一些文本更改以获得模式更改 进入阶段。(我的Git版本是1.5.4.3)

    3 回复  |  直到 9 年前
        1
  •  15
  •   Bob Aman    15 年前

    git add -i 将允许您有选择地从文件添加一些大块到索引。我不知道它是否对权限敏感,但是如果在 chmod 操作时,即使没有显式更新权限,也可能会正确结束在索引中。

        2
  •  77
  •   CB Bailey    15 年前

    你应该能够做到:

    git update-index --chmod=(+|-)x <file>
    

    调整存储在索引中的可执行位。

    然后,您可以将其与对文件内容的任何更改分开提交。

        3
  •  3
  •   Community Neeleshkumar S    7 年前

    Charles’ answer 正在为我向索引添加文件模式和内容更改。我就是这样做的。

    git update-index --skip-worktree --chmod=+x <file>
    git update-index --no-skip-worktree <file>
    

    Example

    或者你也可以

    git update-index --chmod=+x <file>
    git config interactive.singlekey 1
    echo na | git reset -p