助けてください、私は自分の端末でこれを実行しようとしています。
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
助けてください、私はこの問題を理解していません。
あなたのユーザはそのディレクトリを変更するためのパーミッションを持っていないので最初のものはうまくいかなかったようです、そしてあなたのrootユーザはそのgitリポジトリにアクセスするための正しいSSHキーを持っていないためです。
あなたが何をしようとしているかによって、リポジトリを別のディレクトリにクローンすること、あるいはあなたのユーザにフルアクセスを与えるために現在のディレクトリをchown
することがより良いかもしれません。
.git/
ディレクトリに対する十分な権限があるかどうかを確認してください。書き込み権限があるはずです。次のコマンドで設定できます。
プロジェクトフォルダに移動します。
chown -R youruser:yourgroup .git/
グループに許可を与えたい場合は、
Sudo chmod g+w .git -R
私にとっては一番うまくいった。
MacOSの場合
Sudo chmod -R g+w .git
これはUNIXの権限の問題です。リポジトリのクローン作成にSudoを使用しないでください。あなたはrootと同じsshキーを持っていませんし、とにかくrootとして働くべきではありません。 ls -laを実行してファイルに対する許可を見つけ、それらを修正するためにchmod(またはSudo chown)を使用してください。それが役立つことを願っています。
この問題に対する答えは、.git/FETCH_HEADが書き込み権限を持っていることを確認してください。
私はWindows上でこの問題を抱えていましたが、書き込み権限を与えることで解決しました。
Unixでは、プロジェクトリポジトリからchmod a+rw .git/FETCH_HEAD
を実行することができます。
私の場合はそれ以降はうまくいきます。
rm -f .git/FETCH_HEAD
このようにしてみてください、
ステップ1:最初にあなたが誰であるかチェックしますか?現在のユーザー名を返します。例:ubuntu
$ whoami
ステップ2:次に現在のユーザーに権限を設定します。その場合はubuntu
Sudo chown -R ubuntu .git/
私の場合は、.git/FETCH_HEADファイルへの読み取りアクセス権しかありませんでした。プルリクエストを実行するには、 "Sudo chmod g + w .git/FETCH_HEAD"を実行する必要がありました。
私はWindows上で最初の問題(FETCH_HEADパーミッションが拒否されました)を持っていました。
管理者としてGit Bashを実行することで修正しました(右クリック、管理者として実行)。
.git/
を所有するグループに自分自身を追加していない場合は、そうしてください。
Sudo usermod -a -G $(stat -c '%G' .git) $USER
Sudo chmod g+u .git -R
Sudo chmod g+u .gitignore
su - $USER
これは何をするものです。
.git/
を所有しているかを調べ、そのグループにユーザーを追加します。.git/
の所有者と同じ権限を持っていることを確認します。.gitignore
に対して繰り返されます。.git/
を所有しているグループに自分自身を追加したばかりの最近の場合は、.git/FETCH_HEAD
の間にgit pull
に書き込むことができるようになる前に、ログアウトして再度ログインする必要があります。
コマンドを実行して、現在のユーザーにアクセス許可を設定します
$ Sudo chown -R <username> .git/
Windows 7を実行していて、この問題が発生したのは、.gitフォルダを隠していたためです。権限は大丈夫だった、それはただ隠されていた。フォルダを表示すると解決しました。
これ以上のパーミッションはgitのエラーを否定しませんでした。????
このエラーの原因は倍数かもしれませんが、私の場合私はルートでブランチを更新し、それから私が普通のユーザーでそれを更新しようとするとそれは私にエラーを与えます。
両方の解決策を試してみてください
1- Sudo chmod g+w .git -R
うまくいかない場合は、次の解決方法を試してください。問題が解決することを願います。
2 - rm -f .git/FETCH_HEAD
単にあなたのルートフォルダに行き、次のコマンドを実行してください。
chmod a+rw .git/FETCH_HEAD
.git
ディレクトリの所有者とグループを(最初に.gitの親ディレクトリに移動します)ll .git
で見て、ディレクトリのグループと所有者を見て、Sudo usermod -a -G yourusername groupsofonwner
で所有者のグループにあなたのユーザを追加してからすべてうまくいく。
だから夏に
gitの親ディレクトリに行く
$cd your path
.git
ディレクトリのグループオーナーを探す
$ll .git
そのグループにあなたのユーザーを追加する
$usermod -a -G yourusername ownergroupofgit
この変更によるシステムへのログアウトおよびログインが有効になります。
楽しめ ;)
.gitフォルダが隠されていて、その中のすべてのファイルも隠されているときに、この問題が発生しました。再帰的なファイルを更新せずに.gitフォルダのみを非表示にしてください。
Windows用のgit拡張を使用しているときにこのメッセージが表示されました。私の解決策は単にgit拡張を閉じてから管理者として再び開くことでした
私の場合、
Sudo chmod ug + wx .git -R
このコマンドは機能します。
私の箱には2つ以上のユーザーアカウントがあるのでこれを得ました。私はユーザーAとしてログインし、ユーザーBのディレクトリにいました。ユーザーAはユーザーBのものに対する許可を持っていませんでした。ファイルシステムで自分が思っていた場所ではないことに気付いたら、このエラーは意味がありました。
windowsサーバーで同じ問題が見つかった場合は、管理者権限などの十分な権限でコマンドラインを実行する必要があります。
この問題は、.gitフォルダに十分な権限を与えていない場合に発生します。この問題を解決するために-
このコマンドを入力してください -
Sudo chmod a + rw .git -R
それが役に立てば幸い..!!