使用git版本控制只更新和提交文件权限

刚刚将some.sh文件转换为可执行文件(chmod 755 ...),权限被更新,但内容没有更新。是否有一种方法将提交文件导入git,以便可执行位将恢复/设置为克隆 / 结帐 / ?

更新:我如何跟踪新的权限被提交到github?

242735 次浏览

默认情况下,如果你改变了执行文件的权限,git会更新它们。它不会更改或跟踪任何其他权限。

如果你在修改执行权限时没有看到任何变化,你可能在git中有一个忽略文件模式的配置。

查看你的项目,在.git文件夹中的config文件中,你应该会看到如下内容:

[core]
filemode = false

你可以在你最喜欢的文本编辑器中将其更改为true,或者运行:

git config core.filemode true

然后,您应该能够正常提交文件。它只会提交权限更改。

@fooMonster的文章对我有用

# git ls-tree HEAD
100644 blob 55c0287d4ef21f15b97eb1f107451b88b479bffe    script.sh

如您所见,该文件的权限为644(忽略100)。我们想更改为755。

# git update-index --chmod=+x script.sh

提交更改

# git commit -m "Changing file permissions"
[master 77b171e] Changing file permissions
0 files changed, 0 insertions(+), 0 deletions(-)
mode change 100644 => 100755 script.sh