Używam Dropbox
do synchronizowania git
repozytorium, ale teraz, gdy próbuję i push
otrzymuję błąd:
fatal: Reference has invalid format: 'refs/heads/master (MacBook-Pro's conflicted copy 2012-10-07)'
Wygląda więc na to, że Dropbox wykrył konflikt i utworzył kopię. Ok, nie ma problemu, więc usunąłem plik w konflikcie. Nadal jednak pojawia się 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.
find . -type f -name "* conflicted copy*" -delete
Plik w konflikcie może znajdować się w wielu miejscach, przyjrzałbym się:
Lub możesz poszukać wszędzie w
.git
podkatalogu:find . -name '*conflicted*'
Lub, w przeciwnym razie, wyświetl listę aktywnych gałęzi
git branch -a
i usuń (git branch -d
) wszystko podejrzane.źródło
.git
. Przeszedłem i usunąłem je wszystkie, i zostało to naprawione. Dzięki.find . -name '*conflicted*'
(Edycja: format)find
zdobyłem pojedynczy plik powodujący konflikt i ręcznie naprawiłem problem z dwomamv
. Robienie tego powoli i krok po kroku jest najbezpieczniejszą drogą.Dzieje się tak również w naszym zespole, gdy mój kolega wprowadzi zmiany i wyłączy komputer, zanim Dropbox zostanie zaktualizowany.
Rozwiązałem to tak prosto.
Właśnie usunąłem kopię będącą w konflikcie. (Spójna kopia XXXX rrrr-mm-dd)
I pociągnij go normalnie.
Zauważ, że mój kolega miał zmiany przed zepsuciem. I ponownie wprowadził zmiany. Tym razem bez wyłączenia. :)
źródło
Udało mi się usunąć wszystkie pliki będące w konflikcie z mojego folderu .git, ale nadal otrzymywałem błędy dotyczące plików, które już nie istniały.
Rozwiązaniem dla mnie było otwieranie
.git/refs/packed_refs
i usuwanie wierszy zawierających tekst „w konflikcie”.źródło
U mnie to dawało błąd:
fatal: Reference has invalid format: 'refs/tags/r0.2:3'
Możesz przejść do pliku /.git/packed_refs i usunąć wiersz dla
refs/tags/r0.2:3
Potem zaczęło działać. Ale dlaczego tak się stało w pierwszej kolejności, nie wiem.
źródło
Spróbuj jako
git checkout master
pierwszy dostać się na zdrową, dobrze nazwaną gałąź.źródło
git push origin master
, a także wkleić wynik poleceniagit branch -a
?git branch -a
skutkuje tym samym błędem!Otrzymałem ten sam błąd
dla następującego polecenia
Następnie wyszukałem błędną nazwę (nazwa gałęzi, po której występuje (1)) za pomocą polecenia
I pokazał następujący wynik
Która jest jakąś zduplikowaną wersją jakiejś branżowej IMO. Więc usunąłem to, wykonując polecenie find, a następnie usuń
Następnie polecenie rozgałęzienia działa pomyślnie
źródło
Napotkałem podobny błąd np
Samo usunięcie pliku
.git/refs/heads/user-search-api (Sithu's conflicted copy 2016-01-08)
w zdalnym repozytorium Dropbox rozwiązało problem.źródło