error: cannot lock ref... 'refs/tags' exists; cannot create 'refs/tags/.
githubから変更を取り出そうとすると、奇妙な"cannot lock ref"エラーが発生します。 git gcを試したり、似たようなエラーを探したりしましたが、解決策が見つかりません。
> git pull
error: cannot lock ref 'refs/tags/v2.8': 'refs/tags' exists; cannot create 'refs/tags/v2.8'
From github.com:k3it/qsorder
! [new tag] v2.8 -> v2.8 (unable to update local ref)
error: cannot lock ref 'refs/tags/v2.9': 'refs/tags' exists; cannot create 'refs/tags/v2.9'
! [new tag] v2.9 -> v2.9 (unable to update local ref)
31
6
あなたのGitは、
refs/tags
という名前の参照(ディレクトリではなく)が存在すると訴えています。 何がその参照を作ったのかは不明ですが、git rev-parse refs/tags
がハッシュ ID を生成するかどうかを見てみましょう。 もしそうなら、その参照はなくす必要があります。その後、
git fetch
が動作するはずです。もし
git rev-parse refs/tags
が失敗したら (そうなるべきです-refs/tags
自体が有効な名前であってはなりません)、これは *問題ではなく、実際の問題が何であるかは明確ではありません。走っている。
私のために働いた。 これがなぜ問題だったのかはわかりませんが、リモートブランチへの言及が壊れているようです。
ローカルタグの
v2.8
とv2.9
を削除してから、再度プルしてみてください。コマンドで全てのローカルタグを削除したい場合。
上記のスクリプトは、エラーをXXX-errors.logにログに記録し、次のコマンドを使用してXXX-errors.logからXXX-exist-tags-delete.shを自動的に生成および実行することにより、エラーを修正します。
1。 git update-ref -d refs / tags。 2。 git fetch。 3。 git pull。
手っ取り早い方法として、次のような方法があります。
git push --delete origin 'v2.8'`
git push --delete origin 'v2.9'
これは私が試したものであり、私のために働きました。