Git“致命:检测到存储库中的可疑所有权”

Git“致命:检测到存储库中的可疑所有权”
Description:    Ubuntu 22.04.1 LTS
Release:        22.04

我正在尝试以用户身份执行一些 git 命令www-data,但是没有作用。

为了排除故障,我尝试运行sudo -u www-data git show但它返回fatal: detected dubious ownership in repository

如果我运行sudo -u www-data git diff --shortstat它会返回warning: Not a git repository. Use --no-index to compare two paths outside a working tree

我也尝试添加到sudoers

www-data ALL=(ALL) NOPASSWD: /usr/bin/git show

# and also

www-data ALL=(ALL) NOPASSWD: /usr/bin/git

仍然出现相同的错误。有什么想法吗?谢谢。

答案1

Git 要求当前用户是文件的所有者,如果当前用户是组的“成员”,则它不起作用

对于.git属于user1:group1

  • 如果你user1
  • 如果你user2:group1

解决方案 1(最佳)

由于这是自动/cron,因此只需在用户前面加上前缀即可运行。在 git 命令前指定用户

sudo -u <user> git ...

解决方案 2

稍微麻烦一点,因为你需要将每个存储库添加到 中user.gitconfig这里有一个非常详细的答案https://stackoverflow.com/a/73100228/3872647

[safe]
    directory = <real path of git repository, symlink won't work here>

我希望这足够清楚,否则请询问或评论,我会修改这个答案。

答案2

+1 表示“git 要求当前用户是文件的所有者”

  • 我当前的 git 版本是 2.43.1,这个错误信息是自 ?.?.? 以来出现的。
  • 设置 safe.directories 没有起任何作用
  • 我使用的脚本以以下内容开头sudo -u www-data bash -c '...',我发现确实至少 .git 和子级需要由www-data

答案3

因此,我发现如果你编辑用户文件夹中的 .gitconfig 文件(应该是类似的/home/your_user/.gitconfig)并插入: 错误就不会再出现。
[safe]
directory = /path/to/directory

fatal: detected dubious ownership in repository

相关内容