如何在不接受所有文本更改的情况下进行git接受模式更改?

我从“如何让Git忽略文件模式(chmod)更改?”有相反的问题? 我有一个文件,我已经更改了可执行权限,但也有一些文本更改,我想提交前者而不是后者。 这可能与Git?

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

更新:将文本更改为文件更改,然后再次执行git add -p并合并一些文本更改,以便将模式更改设置为暂存。 (我的git版本是1.5.4.3)


git add -i会让你有选择地将一些文件从文件中添加到索引中。 我不知道它是否对权限敏感,但是如果要在chmod操作之后添加一个hunk,即使没有明确更新权限,它也可能会正确地在索引中结束。


你应该能够做到:

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

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

然后,您可以单独对文件内容进行任何更改。


Charles的回答是为我添加文件模式和内容更改。 我像这样解决了这个问题。

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

或者你可以做

git update-index --chmod=+x <file>
git config interactive.singlekey 1
echo na | git reset -p
链接地址: http://www.djcxy.com/p/30017.html

上一篇: How do I make git accept mode changes without accepting all text changes?

下一篇: Can I make git diff ignore permission changes