2012-05-13 20 views
26

を解決することはできません、プルすることはできません、このエラーが発生しました:が私たちの中央サーバーからの私のgitリポジトリに引きながらのgitが基準ORIG_HEAD

$ git pull origin master 

From http://aaa/repo 
* branch   master  -> FETCH_HEAD 
error: unable to resolve reference ORIG_HEAD: No such file or directory 
fatal: Cannot lock the ref 'ORIG_HEAD'. 

私はGitのGCを試してみました(--pruneは今=と)とを探してきました同様のエラー、残念ながら運がない。

+0

おそらく、ブライアンの質問を正解とマークして、それ以上の投票があると思うかもしれません。 –

答えて

82

私はこの問題を抱えていましたが、ファイル.git/ORIG_HEADを削除してから再度プルして解決しました。 .git/ORIG_HEADファイルは、含まれているはずのgitリファレンスではなく、0バイトでしたので、ただ削除しました。

+0

この問題の原因は何ですか? – earthmeLon

+0

@earthmeLonわからない。たぶんファイルシステムの問題です。 –

+0

これを削除すると、すべてのプッシュ/プルで迷惑なパスワードのプロンプトが表示される – RayLoveless

9

git pull fails “unalble to resolve reference” “unable to update local ref”」のgit gc --prune=nowに加えて、git remote prune originを確認してください。あなたは.git/rebase-mergeを持っている場合は

this issueのように、

もチェック.git/HEADの内容( "git rebase and deleted rebasing branches causing “Interactive rebase already started” error message" のように)それを削除することを検討。これはいくつかの種類のレポの破損(「Git corrupt master branch」を参照)である場合には(必要であればgit format-patch経由)、再びあなたのレポのクローンを作成し、そのレポの上にあなたの現在の変更を再適用する最初のを試してみてください

+1

残念ながら、言及された修正のどれもうまくいきませんでしたので、パッチを再クローンして適用する必要がありました。 – vvondra

8

この回答はOPの問題を解決するものではありませんが、同様の問題は解決します。

私は(私はerror: cannot lock ref ... is at ... but expected ...を得た)同様の問題があったが、二つの枝が同じ名前を持つが、異なる場合とレポにあったので、それでした。多分、この答えがここに来る人々を助けるかもしれない、私は答えを他の場所で見つけることができませんでした。 ブランチの1つを削除してから、対応する参照を.git/ref/.../branch_nameから削除してからgitを取得しました。これは大文字と小文字を区別しないファイルシステムで作業していたために起こりました。一方、2つのブランチは大文字小文字を区別するファイルシステムにプッシュされていました。

たとえば、2つのブランチはBRANCH1branch1であり、両方ともoriginの下にあります。まず、ブランチの1つを削除します(例:BRANCH1)。そして、そのREF削除:次に

rm .git/refs/remotes/origin/BRANCH1 

git pullを、そして、それは問題ないはずです。

+0

これは私を助けました。投稿していただきありがとうございます。 – dima

1

git pullがリポジトリにあるときにこのファイルが作成され、同じリポジトリ内に同じリポジトリ内にgit pullが含まれていない場合はその時点で生成され、プロセスが終了すると削除されます。プロセスが終了したりゾンビになった場合、ファイルは削除されず、gitプロセスがまだ存在するかどうか手動でチェックする必要があります。プロセスが存在しない場合は、ファイルを削除してからgit pullにもう一度お試しください。

関連する問題