[解決済み] Gitのエラーです。.git/logs/refs/remotes/origin/master に追記できません。パーミッションが拒否されました
質問
私は、解決できない奇妙な問題を抱えています。以下は、起こったことです。
私はgithubリポジトリに、そこにいたくないいくつかのログファイルを持っていました。私はこのスクリプトを見つけ、このようにgit履歴からファイルを完全に削除します。
#!/bin/bash
set -o errexit
# Author: David Underhill
# Script to permanently delete files/folders from your git repository. To use
# it, cd to your repository's root and then run the script with a list of paths
# you want to delete, e.g., git-delete-history path1 path2
if [ $# -eq 0 ]; then
exit 0are still
fi
# make sure we're at the root of git repo
if [ ! -d .git ]; then
echo "Error: must run this script from the root of a git repository"
exit 1
fi
# remove all paths passed as arguments from the history of the repo
files=$@
git filter-branch --index-filter "git rm -rf --cached --ignore-unmatch $files" HEAD
# remove the temporary history git-filter-branch otherwise leaves behind for a long time
rm -rf .git/refs/original/ && git reflog expire --all && git gc --aggressive --prune
私はもちろん、まずバックアップをとってから試しました。それは問題なく動作しているように見えました。それから git push -f を実行すると、次のようなメッセージが表示されました。
error: Unable to append to .git/logs/refs/remotes/origin/master: Permission denied
error: Cannot update the ref 'refs/remotes/origin/master'.
GitHub リポジトリからファイルが消えているので、すべてうまくプッシュできたように見えますが、もう一度プッシュしようとすると同じことが起こります。
error: Unable to append to .git/logs/refs/remotes/origin/master: Permission denied
error: Cannot update the ref 'refs/remotes/origin/master'.
Everything up-to-date
EDIT
$ sudo chgrp {user} .git/logs/refs/remotes/origin/master
$ sudo chown {user} .git/logs/refs/remotes/origin/master
$ git push
Everything up-to-date
ありがとうございます。
EDIT
Uh Oh. 問題発生です。一晩中このプロジェクトに取り組んでいて、ちょうど自分の変更をコミットしようとしたところでした。
error: Unable to append to .git/logs/refs/heads/master: Permission denied
fatal: cannot update HEAD ref
だから私は
sudo chown {user} .git/logs/refs/heads/master
sudo chgrp {user} .git/logs/refs/heads/master
もう一度コミットしてみると、こうなります。
error: Unable to append to .git/logs/HEAD: Permission denied
fatal: cannot update HEAD ref
だから私は
sudo chown {user} .git/logs/HEAD
sudo chgrp {user} .git/logs/HEAD
そして、もう一度コミットしてみます。
16 files changed, 499 insertions(+), 284 deletions(-)
create mode 100644 logs/DBerrors.xsl
delete mode 100644 logs/emptyPHPerrors.php
create mode 100644 logs/trimXMLerrors.php
rewrite public/codeCore/Classes/php/DatabaseConnection.php (77%)
create mode 100644 public/codeSite/php/init.php
$ git push
Counting objects: 49, done.
Delta compression using up to 2 threads.
Compressing objects: 100% (27/27), done.
Writing objects: 100% (27/27), 7.72 KiB, done.
Total 27 (delta 15), reused 0 (delta 0)
To [email protected]:IAmCorbin/MooKit.git
59da24e..68b6397 master -> master
万歳。に飛び乗る。 http://GitHub.com に飛び、リポジトリをチェックすると、私の最新のコミットはどこにもありませんでした。 ::scratch head:: そこでもう一度プッシュしました。
Everything up-to-date
うーん...そうでもなさそうです。今までこの問題はなかったのですが、これはgithubの問題でしょうか? それとも、私のgitプロジェクトで何か失敗したのでしょうか?
EDIT
気にしないでください、私は単純なをしました。
git push origin master
で、うまく押せました。
どのように解決するのですか?
ローカルで root 権限で git を実行し、その結果、root 権限で実行されたファイルの場所を追跡しているいくつかのファイルの所有者が変更されたように見えます。
origin
ブランチの場所を追跡するいくつかのファイルの所有権を変更したようです。
ファイルの所有権を修正すれば、問題ありません。
# run this from the root of the git working tree
sudo chown -R "${USER:-$(id -un)}" .
関連
-
[解決済み】git error: failed to push some refs to remote
-
[解決済み] detached HEADとmaster/originの連携はどうすればいいですか?
-
[解決済み] Gitのプッシュを正しく強制する方法は?
-
[解決済み] GitHub エラーメッセージ - パーミッションが拒否されました (公開鍵)
-
[解決済み] 古いリモート git ブランチのクリーンアップ
-
[解決済み] Heroku: 異なるローカルGitブランチをHeroku/masterにプッシュする方法
-
[解決済み】Git: Gitを使用しているときにPermission denied (publickey) エラーを解決するにはどうしたらいいですか?
-
[解決済み] GitHubで、既存のレポを追加するときにすべてのブランチをプッシュするにはどうしたらいいですか?
-
[解決済み] IntelliJのShelveとGit stashの違いは何ですか?
-
[解決済み] ローカルレポとリモートレポを接続する
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
gitlab をアップロード ! [リモート拒否] dev -> dev (受信前のフックが拒否されました)
-
解決策 このリポジトリでは、別の git プロセスが実行されているようです。たとえば、「git commit」によって開かれたエディタなどです。
-
Git がエラーを報告しました。現在のブランチの先端が遅れているため、更新が拒否されました。
-
git pushで "Updates were rejected because your current branch is behind "というエラーが報告される。
-
git occurs このリポジトリで別のgitプロセスが動作しているようです。例えば、.NETで開いたエディタなど。エラー
-
[解決済み] JenkinsのGitプラグイン。特定のタグをビルドするには?
-
[解決済み] stash@{1}は曖昧?
-
[解決済み] Git は、省略形のコミット ID が 2 つの異なるコミットを参照する場合に警告を発しますか?
-
[解決済み] CVS から Git への移行: $Id$ 相当?
-
[解決済み] VSCodeからgitの統合を削除する