31

git status または git pull のいずれかを作成しようとしたときに、この数日間、この問題が発生しました。リポジトリは Bitbucket でホストされています。

これを機能させるためにいくつかのことを試しました (stackoverflow にこれに関連する投稿がいくつかありますが、機能しませんでした)。

問題は次のとおりです。

user@Host:/repo/$ git ステータス
致命的: インデックス ファイルを開くことができませんでした: 許可が拒否されました
致命的: git status --porcelain が失敗しました

「git pull」を実行すると、次のようになります。

user@Host:/repo/$ git pull
リモート: オブジェクトのカウント: 77、完了。
remote: オブジェクトの圧縮: 100% (30/30)、完了。
リモート: 合計 56 (デルタ 37)、再利用 41 (デルタ 22)
エラー: リポジトリ データベース .git/objects にオブジェクトを追加するための権限が不十分です

致命的: オブジェクトの書き込みに失敗しました
致命的: unpack-objects に失敗しました

ローカルのアクセス許可を再確認しましたが、すべて問題ないようです。すべてのファイルへのアクセス許可があります。

ノート:

「sudo」を使用すると、すべてが通常どおりに機能するように見えますが、その展開マシンにルートの SSH 資格情報がありません。(エラーが説明しているように)パーミッションの問題だと思いますが、.git/内のファイルを含むすべてのファイルの所有者である場合、それはどうなるでしょうか。

前もって感謝します!

4

4 に答える 4

6

.git ディレクトリとそのファイル/サブディレクトリがユーザーによって所有され、書き込み可能であることを確認してください。これは、リポジトリが別のユーザー アカウントで、または root ユーザーとして (たとえば を介してsudo) 複製されたように思えます。

リポジトリのリモートがホストされている場所は関係ありません。git status はローカル リポジトリにのみアクセスします。

于 2013-03-06T20:00:49.897 に答える
4

私は同じ問題を抱えていて、何が原因なのか疑問に思っていました..周りを見回して、自分が何をしているのか、何がファイルシステムと作業ディレクトリに触れているのかを考えました-そして、ファイルがいくつかのIDEによって開かれたのではないかと疑っていましたマージを実行し、ターミナル git でブランチを変更したときのロック。IDE を閉じ、シェルを閉じ、git pull は問題なく実行され、エラー メッセージは表示されませんでした。システムにユーザーの変更はなかったので、ファイル ロックまたは IDE が舞台裏で git リポジトリを使用して「私のために」行っていたことが原因だと思います。これが誰かの助けになることを願っています。同じ問題が発生していて、(単に修正するだけでなく) 真相を究明したい場合は、「私の .git と作業ディレクトリのファイル所有権に触れて変更している可能性があるのは誰/何が考えられるのか」と自問してください。私の場合、容疑者は Microsoft Visual Studio でした。

于 2020-07-06T14:41:53.310 に答える
0

今日、BitBucket で同じ問題が発生しました。これが私のために働いた回避策です:

git remote set-url origin https://_username_@bitbucket.org/_my_/_repo_.git
git pull
git push
git remote set-url origin git@bitbucket.org:_my_/_repo_.git
于 2015-02-25T21:48:03.733 に答える