261

私を助けてください、私は私のターミナルでこれを実行しようとしています:

asgard@asgard-A7N8X2-0:~/CollegePortal$ git pull
error: cannot open .git/FETCH_HEAD: Permission denied

それから私はこれを試してみます

asgard@asgard-A7N8X2-0:~/CollegePortal$ sudo git pull
Permission denied (publickey).
fatal: The remote end hung up unexpectedly

私を助けてください、私はこの問題を理解していません。

4

32 に答える 32

252

最初のディレクトリは、ユーザーがそのディレクトリを変更するための権限を持っていないために機能していないようです。2番目のユーザーは、rootユーザーがそのgitリポジトリにアクセスするための適切なSSHキーを持っていないためです。

何をしようとしているのかによっては、リポジトリを別のディレクトリに複製するかchown、現在のディレクトリにクローンを作成して、ユーザーが完全にアクセスできるようにする方がよい場合があります。

于 2012-11-02T13:09:09.127 に答える
170

.git/ディレクトリに対する十分な権限があるかどうかを確認してください。書き込み権限が必要です。次のコマンドで設定できます。

プロジェクトフォルダに移動します。

chown -R youruser:yourgroup .git/
于 2012-11-02T13:10:24.323 に答える
55

グループに許可を与えたい場合は、

sudo chmod g+w .git -R

私にとって最高の仕事をしました。

MacOSの場合

sudo chmod -R g+w .git 
于 2015-03-23T18:07:19.877 に答える
33

これはUNIXの権限の問題です。sudoリポジトリのクローン作成には使用しないでください。あなたはrootと同じsshキーを持っていないので、とにかくrootとして働くべきではありません。ls -laファイルのアクセス許可を見つけて、chmod(またはsudo chown)を使用して修正してください。お役に立てば幸いです。

于 2012-11-02T13:10:26.783 に答える
31

私の場合、その後は問題なく動作します。

rm -f .git/FETCH_HEAD

git branch -u
于 2015-03-23T09:07:22.470 に答える
26

このようにしてみてください、

ステップ1:最初にあなたが誰であるかを確認しますか?現在のユーザー名を返します(例:ubuntu )

$ whoami 

ステップ2:次に、現在のユーザー(この場合はubuntu by )に権限を設定します

sudo chown -R ubuntu .git/
于 2018-05-15T16:32:21.600 に答える
24

この問題への答えは、.git / FETCH_HEADに書き込み権限があり、すべて設定されていることを確認してください。

私はWindowsでこの問題を抱えていましたが、書き込み権限を与えることで解決しました。

UNIXではchmod a+rw .git/FETCH_HEAD、プロジェクトリポジトリから実行でき、その後は機能するはずです。

于 2014-12-22T22:54:56.670 に答える
12

私の場合、.git/FETCH_HEADファイルへの読み取りアクセスしかありませんでした。プルリクエストを実行できるようにするには、「sudo chmod g + w .git/FETCH_HEAD」を実行する必要がありました。

于 2014-03-11T18:42:44.597 に答える
11

私はWindowsで最初の問題(FETCH_HEAD権限が拒否されました)を抱えていました。

管理者としてGitBashを実行することで修正しました(右クリック、管理者として実行)。

于 2014-07-24T15:17:14.373 に答える
10

を所有するグループに自分自身を追加していない場合は、追加する.git/必要があります。

sudo usermod -a -G $(stat -c '%G' .git) $USER
sudo chmod g+u .git -R
sudo chmod g+u .gitignore
su - $USER

これは何をしますか:

  1. どのグループが所有しているかを.git/調べ、そのグループにユーザーを追加します。
  2. グループメンバーがの所有者と同じ権限を持っていることを確認して.git/ください。
  3. のためにこれを繰り返し.gitignoreます、おそらくあなたはそれを必要とするでしょう
  4. ログアウトして再度ログインし、グループメンバーシップファイルのアクセス許可を更新します

最近このようなことをした場合(を所有するグループに自分を追加した場合)、の間.git/に書き込みを行う前に、ログアウトしてから再度ログインする必要があります。.git/FETCH_HEADgit pull

于 2016-07-03T01:26:33.437 に答える
10

コマンドを実行して、現在のユーザーに権限を設定します

$ sudo chown -R <username> .git/

于 2019-07-11T12:31:33.487 に答える
10

これにより、フォルダ内のすべての権限が解決されます

sudo chown -R $(whoami) ./
于 2019-10-11T12:45:22.033 に答える
6

Windows 7を実行しているときにこの問題が発生したのは、.gitフォルダーを非表示にしていたためです。許可は大丈夫だった、それはただ隠されていた。フォルダを表示すると解決しました。

于 2015-06-20T17:52:33.460 に答える
6

ルートフォルダに移動して、次のコマンドを実行するだけです。

chmod a+rw .git/FETCH_HEAD
于 2018-11-02T10:57:58.157 に答える
3

これは私のために働いた:

  1. .gitフォルダーを右クリックします
  2. [情報を見る]をクリックします
  3. ユーザーに権限を設定する
  4. コグアイコンをクリックし、同封のアイテムに適用をクリックします

gitのエラーを拒否する権限はもうありません。

于 2017-09-30T17:14:02.467 に答える
3

このコマンドを使用してください、それは私のために働きました。

sudo chown -R$USER:。

参照:https ://techoverflow.net/2019/05/07/how-to-fix-git-error-cannot-open-git-fetch_head-permission-denied/

于 2021-09-29T17:52:25.390 に答える
2

.git(最初に.gitの親ディレクトリに移動します)でディレクトリの所有者とグループをll .git確認し、ディレクトリのグループと所有者を確認し、で所有者のグループにユーザーを追加しsudo usermod -a -G yourusername groupsofonwner、ログアウト=>ログインしてすべてが機能するようにします。

だから夏には

  1. gitの親ディレクトリに移動します

    $cd your path
    
  2. .gitdirecotryのグループオーナーを探す

    $ll .git     
    
  3. そのグループにユーザーを追加します

    $usermod -a -G yourusername ownergroupofgit
    
  4. この変更を有効にするには、システムからログアウトしてログインします。

  5. 楽しめ ;)

于 2016-01-11T06:17:31.717 に答える
2

.gitフォルダーが非表示になり、その中のすべてのファイルも非表示になると、この問題が発生します。再帰的なファイルを更新せずに.gitフォルダーのみを非表示にすると、機能します。

于 2016-11-18T13:41:04.587 に答える
2

このエラーの理由は倍数である可能性がありますが、私の場合、rootでブランチを更新し、通常のユーザーで更新しようとするとエラーが発生します。

両方のソリューションを試してみてください

1- sudo chmod g+w .git -R

それがうまくいかない場合は、次の解決策を試してくださいそれがあなたの問題を解決することを願っています

2 - rm -f .git/FETCH_HEAD
于 2018-07-03T06:04:01.830 に答える
2

この問題は、.gitフォルダーに十分なアクセス許可を与えていない場合に発生します。この問題を解決するために-

  1. まず、作業ディレクトリに移動します。
  2. このコマンドを入力してください-

    sudo chmod a + rw .git -R

それが役に立てば幸い..!!

于 2019-05-12T10:23:43.677 に答える
2

エラー:.git / FETCH_HEADを開くことができません:アクセスが拒否されました

私のためのこの仕事:

  1. デフォルトでは、.gitフォルダーは非表示になっています。
  2. .gitフォルダーとその子フォルダーおよびファイルを再表示し、リクエストをプルしてみます。
于 2020-12-24T06:07:43.343 に答える
1

Windowsにgit拡張機能を使用しているときにこのメッセージが表示されました。私の修正は、単にgit拡張機能を閉じてから、管理者として再度開くことでした。

于 2018-03-07T07:36:38.257 に答える
1

私の場合、

sudo chmod ug + wx .git -R

このコマンドは機能します。

于 2018-11-30T04:48:48.487 に答える
1

まったく同じエラーが発生しましたが、私の場合、問題はPHPバージョンへのアップグレード後にApacheを再構築した結果でした。簡単に言うと、Apacheモジュール「suexec」をインストールするのを忘れました。

それはグループや所有権とは何の関係もありませんでした。それは私が理解するのにたった2日しかかかりませんでした、誰かが私を撃ちます...

于 2019-11-07T05:17:02.397 に答える
1

私の場合、NTFSディスク上にプロジェクトフォルダがあるデュアルブートシステム(Windows 10およびLinux)がありました。別のアップデートでは、Windows10自体が設定で「高速起動」を有効にしていることが判明しました。Windowsでチェックを外した後、Linuxでの「エラー:.git / FETCH_HEADを開けません:アクセスが拒否されました」はなくなりました。

于 2019-11-25T20:11:55.090 に答える
1

MacOSユーザー(High Sierra以降のバージョンの場合)の場合は、次を使用します。

sudo chown -R $(whoami) $(brew --prefix)/*
于 2020-04-19T07:07:31.070 に答える
1

ここには多くの回答があり、多くはchownを行うことを提案しています。sudo su tomcat 私にとっては、所有者が書き込みを許可されてい たため、ユーザーをフォルダーを所有するユーザー(私の場合はtomcat)に変更する方がはるかに簡単でした git pull 。完了後に許可を元に戻すことを覚えておく必要がないので、これを好みます。

フォルダを所有しているユーザーを見つけるには、ls -la

注:提供されているフォルダーへのsudo以外の書き込みアクセスを許可しないでください。

于 2020-09-08T15:43:59.713 に答える
0

ボックスに複数のユーザーアカウントがあるため、これを取得しました。私はユーザーAとしてログインし、ユーザーBのディレクトリにいました。ユーザーAにはユーザーBのものに対する権限がありませんでした。自分がファイルシステム内にいると思っていた場所にいないことに気付いたら、このエラーは理にかなっています。

于 2015-05-07T21:17:36.520 に答える
0

Windowsサーバーで同じ問題が見つかった場合は、管理者権限などの十分な権限でコマンドラインを実行する必要があります。

于 2018-10-28T03:57:10.260 に答える
0

私がやっていたとき、私はbundle install得ました:

Following files may not be writable, so sudo is needed:
  /Library/Ruby/Gems/2.6.0
  /Library/Ruby/Gems/2.6.0/bin
  /Library/Ruby/Gems/2.6.0/build_info
  /Library/Ruby/Gems/2.6.0/bundler
  /Library/Ruby/Gems/2.6.0/cache
  /Library/Ruby/Gems/2.6.0/doc
  /Library/Ruby/Gems/2.6.0/extensions
  /Library/Ruby/Gems/2.6.0/gems
  /Library/Ruby/Gems/2.6.0/specifications
Fetching gem metadata from https://rubygems.org/.........
error: cannot open .git/FETCH_HEAD: Permission denied

ここからの手順に従って、シムbash_profileを追加するように更新しました。rbenv

export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

しかし、いくつかの未知の理由で、私は彼らにコメントしてもらいました。コメントを外すと、bundle install正常に実行できました。

于 2021-04-26T19:23:50.970 に答える
0

sudo chmod -R 777 .gitまたは、自分だけにrw権限を追加する場合は、次を使用できます。sudo chmod -R +rw .git

于 2022-01-27T20:11:34.730 に答える
-1

私の場合、次のように動作します。sudoコマンドの前に書いたばかりです。

sudo npm run deploy
于 2020-06-29T09:42:39.870 に答える