2012-10-07 10 views
99

używam Dropbox zsynchronizować git repozytorium, ale teraz, gdy próbuję i push Otrzymuję błąd:Git śmiertelne: Wniosek ma nieprawidłowy format: „pozycje literatury/głowice/master

fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)' 

tak, to wygląda na to, że Dropbox wykrył konflikt i utworzył kopię. Ok, nie ma problemu, więc usunąłem konflikt pliku. Nadal jednak otrzymuję powyższy błąd git.

$ git checkout master 
    M index.html 
    Already on 'master' 
$ git add . 
$ git commit -a -m "Cleanup repo" 
    [master ff6f817] Cleanup repo 
    1 file changed, 5 insertions(+), 5 deletions(-) 
$ git push 
    fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)' 
    The remote end hung up unexpectedly` 

Jak mogę to naprawić? Dzięki.

Odpowiedz

0

Wypróbuj najpierw git checkout master, aby dostać się do zdrowej, dobrze nazwanej gałęzi.

+0

Zaktualizowane dane wyjściowe w oryginalnym wpisie. – Justin

+0

Hm, czy mógłbyś wypróbować pełny 'git push origin master', a także wkleić dane wyjściowe' git branch -a', proszę? – poke

+0

Ten sam błąd tutaj ... próba 'git branch -a' powoduje ten błąd! – trusktr

42

Plik konflikt może być w wielu miejscach, chciałbym spojrzeć na:

.git/logs/refs/remotes/origin/ 
.git/logs/refs/heads/ 
.git/refs/remotes/origin/ 
.git/refs/heads/ 

Albo może wyglądać wszędzie w .git podkatalogu: find . -name '*conflicted*'

Albo inaczej, listy aktywnych oddziałów z git branch -a i usuń (git branch -d) coś podejrzanego.

+0

Wszędzie wewnątrz pliku '.git' znajdują się kolidujące pliki. Przeszedłem i usunąłem je wszystkie, i to naprawiłem. Dzięki. – Justin

+2

@Justin Glad, że mogę pomóc. Jeśli ta lub inna odpowiedź rozwiązała problem, oznacz go jako zaakceptowany. –

+2

W systemie Mac OS X użyj: 'find. -name '* conflicted *' '(Edytuj: format) – xgMz

7

Udało mi się usunąć wszystkie pliki będące w konflikcie z folderu .git, ale nadal otrzymywałem błędy dotyczące plików, które już nie istniały.

Naprawiono dla mnie otwarcie .git/refs/packed_refs i usunięcie linii zawierających tekst "sprzeczny".

177

wykonaj kopię zapasową repo, jeśli nie jesteś tego pewien, ponieważ te polecenia są nieodwracalne.

najpierw przejdź do katalogu repo.

cd myrepo 

następnie rekurencyjnie wyszukiwania dla skonfliktowanych plików i usuń je

find . -type f -name "* conflicted copy*" -exec rm -f {} \; 

wreszcie usunąć „skonfliktowany” referencje od zapakowany-bibl pliku Git za

awk '!/conflicted/' .git/packed-refs > temp && mv temp .git/packed-refs 
+1

Miałem ten sam problem i to naprawiło to dla mnie. Dziękuję Ci! – erik

+0

Naprawiono to również dla mnie. Dziękuję Ci! – cecconeurale

+0

dla użytkowników macos 'find. -type f -name "* skonfliktowana kopia *" -delete' – Soyoes

8

to również zdarzyć naszych zespół, kiedy mój kolega przesyła swoje zmiany i zamyka komputer, zanim Dropbox się zaktualizuje.

Rozwiązałem to tak prosto.

Po prostu usunięto skonfliktowaną kopię. (Konflikt XXXX rrrr-mm-dd)

I pociągnij to normalnie.

Zauważ, że mój kolega miał zmiany przed pomieszaniem. I ponownie wprowadził zmiany. Tym razem bez wyłączania.:)

+1

działa absolutnie idealnie dla mnie :) thx - dla mnie dropbox stworzył dziwną nazwę pliku, który nie był zgodny z "update" – cV2

+1

To działało dla mnie! W nazwie w folderze/refs/heads znajdował się plik z "konfliktową kopią" i usuwany, następnie ciągnij/pchnij i wszystko jest w porządku. Dzięki! – DiscDev

0

byłem coraz ten sam błąd

fatal: Reference has invalid format: 'refs/heads/somebranch (1)'

za pomocą następującego polecenia

git branch 

Potem szukałem błędną nazwę (oddział następnie (1)) przy użyciu polecenia

find . -name 'somebranch (1)' 

I pokazał następujący wynik:

./.git/refs/heads/somebranch (1)

Która jest zduplikowana wersja somebranch IMO. Więc usunąłem to poprzez wykonanie polecenia find brzmienie usuwać

find . -name 'somebranch (1)' -print -exec rm -rf {} \; 

Następnie polecenie uruchomienia oddziału powodzeniem

git branch 
0

Dla mnie było to daje błąd: fatal: Reference has invalid format: 'refs/tags/r0.2:3'

Można przejdź do pliku /.git/packed_refs i usuń wiersz dla refs/tags/r0.2:3

Potem zaczęło działać. Ale dlaczego to się wydarzyło w pierwszej kolejności, nie wiem.

0

I encounterd podobny błąd taki jak

fatal: Reference has invalid format: 'refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08)' 

prostu usunięcie pliku .git/refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08) w zdalnym repozytorium Dropbox nie rozwiąże problemu.

Powiązane problemy