运行 git status 重置索引文件的权限

运行 git status 重置索引文件的权限

尝试弄清楚这是 git 错误还是 Ubuntu 的问题。基本上,与 git 索引文件的交互大约有一半的时间会导致该文件的权限发生更改,以至于我无法再次执行相同的命令。如下所示:

$ ll .git
total 156K
...
drwxrwxrwx   2 dev dev 4.0K Jul 23 09:30 hooks
-rwxrwxrwx   1 dev dev  17K Aug  8 13:12 index
drwxrwxrwx   2 dev dev 4.0K Jul 19 09:31 info
...

$ gs
# On branch build-0.3
# Your branch is ahead of 'staging/build-0.3' by 5 commits.
#   (use "git push" to publish your local commits)
#
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   scripts/loadDb.coffee
nothing added to commit but untracked files present (use "git add" to track)

$ ll .git
total 156K
...
drwxrwxrwx   2 dev dev 4.0K Jul 23 09:30 hooks
-rw-rw-r--   1 dev dev  17K Aug  8 13:16 index   # <------ this line  
drwxrwxrwx   2 dev dev 4.0K Jul 19 09:31 info
...

$ git --version
git version 1.8.3.4

$ lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 12.04.2 LTS
Release:    12.04
Codename:   precise

我已经向 git 邮件列表提交了一个错误报告,但该列表非常不方便用户使用,我无法判断它是否真的被提交了。也可能是我在 Ubuntu 中做错了什么,这就是导致它的原因。

自从我切换到 12.04 64b 后,这种情况就一直发生,但我不能肯定地说确切地发生的时候。

答案1

您的 git 存储库是否恰好位于 Windows 文件系统上?.git 中的文件不应是可执行的,777 权限清楚地表明它托管在非本机文件系统上。git status 似乎只是将权限恢复为正确的值(对于索引文件,它们应该是 644,这是正确的)。

我的所有 git 索引都有 644 个权限,并且它们运行起来没有问题。

另一方面,777 模式不会对 git 的功能产生任何影响。如果你除了模式更改之外没有看到任何不良影响,我不会太担心。

相关内容