758

git 1.6.4.2 を使用して、試してみると、git pull次のエラーが表示されます。

error: unable to resolve reference refs/remotes/origin/LT558-optimize-sql: No such file or directory
From git+ssh://remoteserver/~/misk5
 ! [new branch]      LT558-optimize-sql -> origin/LT558-optimize-sql  (unable to update local ref)
error: unable to resolve reference refs/remotes/origin/split-css: No such file or directory
 ! [new branch]      split-css  -> origin/split-css  (unable to update local ref)

試してみましたがgit remote prune origin、役に立ちませんでした。

4

33 に答える 33

1148

次のコマンドを使用して、ローカルリポジトリをクリーンアップしてみてください。

$ git gc --prune=now
$ git remote prune origin

man git-gc(1):

git-gc - Cleanup unnecessary files and optimize the local repository

git gc [--aggressive] [--auto] [--quiet] [--prune=<date> | --no-prune]

       Runs a number of housekeeping tasks within the current repository, such as compressing file revisions
       (to reduce disk space and increase performance) and removing unreachable objects which may have been
       created from prior invocations of git add.

       Users are encouraged to run this task on a regular basis within each repository to maintain good disk
       space utilization and good operating performance.

man git-remote(1):

git-remote - manage set of tracked repositories

git remote prune [-n | --dry-run] <name>

           Deletes all stale remote-tracking branches under <name>. These stale branches have already been
           removed from the remote repository referenced by <name>, but are still locally available in
           "remotes/<name>".            
于 2011-09-08T13:36:43.663 に答える
750

私にも起こりました。私の場合、悪い参照はマスターであり、次のことを行いました。

rm .git/refs/remotes/origin/master
git fetch

これにより、gitはrefファイルを復元しました。その後、すべてが再び期待どおりに機能しました。

于 2013-03-17T08:37:19.773 に答える
155

これは私のために仕事をしました:

git gc --prune=now
于 2011-09-30T18:18:43.430 に答える
106

私にとっては、エラーをスローしているファイルをフォルダーから削除するのに役立ちました.git/refs/remotes/origin/

于 2015-06-19T13:09:49.367 に答える
48

次のコマンドを実行します。

rm .git/refs/remotes/origin/master

git fetch

git branch --set-upstream-to=origin/master

念のため、 とは何かを知る必要がある場合は 、 Git リファレンスのRemotesセクションを.git/refs/remotes/origin/masterお読みください。

于 2017-07-05T10:56:41.330 に答える
45

私はこれと同じ問題を抱えていて、エラーが発生しているファイルに移動して解決しました:

\repo\.git\refs\remotes\origin\master

このファイルは null でいっぱいだったので、github の最新の参照に置き換えました。

于 2012-11-27T12:40:00.223 に答える
44

私の場合、ディレクトリの下の削除参照ファイルをすべて削除した後、問題は解決しました.git

メッセージを見ると、どのファイルを削除する必要があるかがわかります (具体的には)。

削除するファイルは.git/refs/remotes.

そこにあるすべてのファイルを削除し、 gc prune を実行しました

git gc --prune=now

その後、すべてが正常に機能します。

于 2016-08-03T08:29:41.773 に答える
11

これに簡単に答えると、この問題は、ローカルにリモートに関する情報があり、誰かが何かを変更してリモートとあなたの変更が非同期になる場合に発生します。

誰かがリモート ブランチを削除し、同じ名前で再度作成したため、この問題が発生していました。

このような問題に対処するには、リモートからプルまたはフェッチを実行します。

git remote prune origin

または、GUI を使用している場合は、リモートからフェッチします。

ここに画像の説明を入力

于 2016-07-05T11:27:41.730 に答える
4

一緒に働くことができました

git remote update --prune
于 2016-01-07T08:48:50.170 に答える
2

私にとっては、という名前のローカル ブランチがfeature/phase2あり、リモート ブランチの名前はfeature/phase2/data-model. 名前の競合が問題の原因だったので、ローカル ブランチを削除しました (保持する必要がある場合は、名前を変更できます)。

于 2015-03-10T13:11:05.943 に答える
1

私は同じ問題を抱えていました。私は次の手順に従います

1)問題のあるブランチを他のブランチに切り替える

2)そのブランチを削除します

3) 再度チェックアウトします。

注:- コミットされていない変更を隠して、元に戻すことができます。

于 2016-05-27T16:47:27.077 に答える
1

この問題を引き起こす可能性のある特定のケースを書き留めます。

ある日、リモートに「feature」ブランチを持ちながら、「feature/subfeature」という名前のブランチをプッシュしました。

その操作は私の側ではエラーなく正常に機能しましたが、同僚がブランチをフェッチおよび/またはプルすると、まったく同じエラーメッセージが表示されましunable to update local refcannot lock ref 'refs/remotes/origin/feature/subfeature.

featureこれは、remote( git push --delete origin feature) のブランチを削除git remote prune originし、同僚のレポで実行することで解決されました。これにより、* [pruned] origin/feature.

したがって、私の推測では、内部的に git のフォルダー (.git/...) にrefgit fetchを作成しようとしていましたが、既に refがあったため、フォルダーの作成に失敗しました。subfeaturefeaturefeature

于 2018-11-07T09:01:08.283 に答える
1

私は使用git prune originしましたが、それでうまくいきました。

于 2018-07-19T12:50:04.093 に答える
0

composer update で同じ問題が発生しました。しかし、私にとっては、作曲家のキャッシュをクリアし、ベンダーフォルダーのコンテンツを削除した後にのみ機能しました。

rm -rf vendor/*
git gc --prune=now
git pull
composer clear-cache
composer update my/package
于 2015-08-11T15:44:19.310 に答える
0

同じメッセージを持っていましたが、ディレクトリがあり、プル時に失敗したメッセージを受け取りました。

git --prone も役に立ちませんでした。リモートで作成されたディレクトリと同じ名前のファイルがあったことがわかりました。

.git\logs\refs\remotes\origin に移動して、ロケール ファイルを消去する必要がありました。

于 2016-08-11T11:17:14.777 に答える
0

リポジトリが削除され、同じ名前で作成されたときに、同じ問題に直面しました。以下のようにリモートURLを再設定した場合にのみ機能しました。

git remote set-url origin [GIT_REPO_URL]

リモート URL を確認します。

git remote -v

これで、すべてのコマンドが通常どおり機能するはずです。

于 2018-05-01T20:25:36.237 に答える
0

この問題は、Mac の開発者がブランチ名に ">" より大きい記号を使用してブランチを作成したときに発生しました。

これにより、TeamCity と、SourceTree を実行しているローカルの Windows ベースのコンピューターで問題が発生しました。BitBucket は問題なく通過させました。

ユーザーを解決するには、ブランチを削除して再作成しました。これは素晴らしく簡単でした。

于 2019-08-22T01:16:54.630 に答える