特定のgitコマンド(diff、log)にはsudo権限が必要です

特定のgitコマンド(diff、log)にはsudo権限が必要です

私のUbuntu 17.10インストールでは、特定のgitコマンドはsudo権限がないと正常に実行できません(sudoがないと、すぐに戻り、何も出力されません)。一方、他のgitコマンドは必要ありません。この問題は私のコンピュータ上のすべてのgitリポジトリで同じなので、特定のリポジトリの権限とは関係ないようです。これらのgitコマンド必要とするsudo:

  • 差分
  • ログ
  • 見せる

それらはないsudo が必要です:

  • 追加
  • 専念
  • 状態
  • 隠し場所
  • 支店
  • チェックアウト

特に許可/禁止コマンドのパターンに完全に困惑しています。さらにデバッグするための解決策や提案はありますか?

編集:新しいリポジトリでも問題は解決しません。フォルダの権限 ( からls -la):

合計 28
drwxr-xr-x 3 morten morten 4096 6月5日 20:52 .
drwxrwxr-x 33 morten morten 4096 6月5日 20:50 ..
drwxr-xr-x 8 morten morten 4096 6月 5日 20:53 .git
-rw-r--r-- 1 morten morten 0 6月 5 20:52 test.txt

答え1

.git 内の一部のオブジェクトのファイル所有権が間違っている可能性があります。所有権を変更して、sudo なしで git コマンドを再度試してください。

sudo chown -R morten:morten .git

また、.git/config と ~/.gitconfig をチェックして、sudo を必要とする diff、log、show が設定されていないことを確認してください。

関連情報