2012-12-31 11 views
7

Potrzebuję pomocy w rozwiązaniu problemu, gdy popycham gałąź z mojego lokalnego repo na pendrive. Uważam, że przyczyną problemu było przełączanie się między różnymi napędami. W szczególności straciłem jeden i zacząłem używać zamiennika. Potem, kiedy znalazłem oryginał, wróciłem do niego. Teraz wydaje się, że niektóre z moich informacji/głów są pomieszane. Na przykład, pojawia się następujący komunikat przy próbie pchania oddział:Błąd "nie udało się zablokować"

$ git push origin android-lite 
Counting objects: 111, done. 
Compressing objects: 100% (98/98), done. 
Writing objects: 100% (109/109), 29.63 KiB, done. 
Total 109 (delta 40), reused 0 (delta 0) 
error: unable to resolve reference refs/heads/android-lite: No such file or directory 
remote: error: failed to lock refs/heads/android-lite 
To /media/2AC0-E4E2/devel/src/java/bbct/ 
! [remote rejected] android-lite -> android-lite (failed to lock) 
error: failed to push some refs to '/media/2AC0-E4E2/devel/src/java/bbct/' 
$ 

Jeśli dobrze rozumiem, to mówi, że sędziowie/głowice/android-lite nie istnieje w pochodzenia. Jestem jednak zdezorientowany, dlaczego git nie tworzy nowej gałęzi. Czy jest coś w moim lokalnym repozytorium, które wskazuje, że gałąź android-lite już istnieje?

+4

Możesz wyczyścić swoje repozyty za pomocą 'git gc' i' git remote prune'. – madhead

Odpowiedz

2

Jeśli debugowania zdalnego repo jest zbyt skomplikowana (jak w this question z git gc, git prune, git fsck, ...)), nadal można:

  • git bundle aktualna repo, który daje tylko jeden plik,
  • kopiować, że jeden plik na dysku zdalnym
  • git clone z tego pliku pęczka
  • ustawić aktualną zdalny adres do tej nowej ścieżki

To trochę jak "How to synchronize two git repositories", a użycie pakietu do tego zadania to upewnienie się, że nie masz żadnej kopii błędu pliku.

+0

Dzięki za sugestie. Aby podkreślić jeden szczegół w moim pytaniu: zdalne repozytorium znajduje się na dysku podłączonym do komputera. Mogę łatwo "cd" bezpośrednio do zdalnego repo i manipulować nim stamtąd. Więc jeśli istnieje proste rozwiązanie bezpośrednio manipulujące pilotem, jestem za tym wszystkim. –

+0

@ Code-Guru Mam link do pytania, które wyjaśnia polecenie, które możesz spróbować debugować. Jeśli chodzi o moją sugestię, nadal używałbym pakietu w celu zainicjowania czystego repo. Możesz też sklonować swoje lokalne repo bezpośrednio na wspomnianym napędzie. – VonC