288

メッセージ全文:

error: Ref refs/remotes/origin/user is at 3636498c2ea7735fdcedc9af5ab3c8689e6abe77 but expected a21359c6cc2097c85775cde6a40105f4bd7100ec
From github.com:{github project url}
 ! a21359c..6273ffc  user -> origin/user  (unable to update local ref)
4

18 に答える 18

271

大文字と小文字を区別しないファイルシステム(WindowsまたはOS X)でgitを実行している場合、同じ名前で大文字と小文字が異なる2つのブランチがある場合に発生します。たとえばuser_model_changesUser_model_changes両方のリモートブランチが同じトラッキング参照と一致するためです。 。

間違ったリモートブランチを削除して(大文字と小文字だけが異なるブランチは使用しないでください)、git remote prune originすべてが機能するはずです。

于 2012-08-22T09:15:48.433 に答える
251

恒久的な修正

git update-ref -dこのエラーのインスタンスを解決しました。

git update-ref -d refs/remotes/origin/user

これはリモートには影響しないことに注意してください。

私の場合、その後、git fetchそのブランチを再度フェッチし、次の git fetches/pulls で「リモート ref は at but expected」というエラーが発生しなくなりました。

それでもうまくいかない場合は、一時的な修正:

問題のブランチを気にしない場合 (たとえば、オリジン/ユーザーではなくマスターを更新したいだけ)、git pull回避策は、気になる特定のブランチを取得してからマージすることです。

git fetch # may give an error for a particular branch, but other branches will still be successfully fetched
git merge origin/master
于 2014-12-29T19:21:40.153 に答える
5

より明確な手順

  1. ターミナルで

    cd /.git/refs/remotes/origin
    
  2. do ls、いくつかのブランチHEADが表示されます

  3. 問題があると思われるブランチを削除します

    rm branchname
    
  4. うまくいかなかった場合は、すべてのブランチ/HEADを削除します

    • あなたは引きたいかもしれません

今すぐうまくいくことを願っています。

于 2017-07-10T18:49:50.913 に答える
2

これを試してみてください、それは私にとってはうまくいきました。端末で: git remote prune origin.

于 2017-12-12T12:03:51.723 に答える
0

私は同じ問題に直面しました.リモートブランチを削除し、マスターから新しいブランチを作成し、古い機能ブランチから新しい機能ブランチに変更をマージしました. 今、プルリクエストとプッシュリクエストを試してみましたが、うまくいきました

于 2021-01-29T15:57:01.517 に答える