2012-01-17 14 views
21

Próbowałem coś z kilkoma oddziałami, więc wyreżyserowałem tymczasowy oddział i byłem w trakcie rozwiązywania niektórych konfliktów, gdy zdecydowałem się nie uzupełnij go w inny sposób. Następnie usunąłem tymczasowy oddział i udałem się na moją wesołą drogę. Kilka godzin później chciałem rebase kolejny oddział i uzyskać ten komunikat o błędziegit rebase i usunięte gałęzie przebudowy powodujące komunikat "Interactive rebase already started" komunikat o błędzie

Interactive rebase already started 

git rebase --abort wyświetla ten komunikat o błędzie

error: unable to resolve reference refs/heads/tmp/rails3-rails-2-fixes: No such file or directory 
fatal: Cannot lock the ref 'refs/heads/tmp/rails3-rails-2-fixes'. 
Could not move back to refs/heads/tmp/rails3-rails-2-fixes 

próbował wystarczy utworzyć kolejny oddział o nazwie tmp/rails3-rails-2-fixes ale nie ma kości

Jakieś pomysły, jak mogę to rozwiązać?

Odpowiedz

18

Hm, to jest niewygodne. Odtworzenie gałęzi byłoby moją pierwszą próbą. W przeciwnym razie powinieneś móc usunąć katalog .git/rebase-merge, który zawiera stan rebase. (Przenieś to na bok, aby być bezpiecznym, jeśli chcesz.) Kiedy to minie, Git nie powinien mieć żadnego sposobu, by się dowiedzieć, że w jego trakcie następował rebelier. Spójrz na swoje oddziały, aby upewnić się, że nie udało Ci się stracić żadnych zobowiązań, a będziesz dobry!

+1

To działało i do tej pory nie widzę żadnych brakujących zobowiązań, dzięki dużo zaoszczędziłeś mi wiele kłopotów: D – tee

9

sprawdź git status i sprawdź, czy nie kupujesz żadnego oddziału po ostatnim przebiciu, to nie jesteś w żadnej branży.

becase transferu rebase Cię do nieprzestrzegania strefie oddziału, więc trzeba przerwać ostatnia rebase za pomocą polecenia git rebase --abort i kasy oddziału iść na oddział i rozpocząć nowy podścielanie

+0

Mogłem odkupić inne placówki, co jest jednym z powodów, dla których nie zauważyłem, dopóki nie spróbowałem zmienić nazwy innej filii. – tee

+0

Tak, możesz w każdej chwili wypożyczyć oddział. ale jest to funkcjonalność git, nie ostrzeże Cię, gdy płacisz za zbieranie. ale git ostrzec o opcji kontynuuj i anuluj, gdy wystąpi konflikt – Dau

+0

I już git rebase --abort, ale otrzymałem komunikat o błędzie powyżej, wszelkie inne możliwe rozwiązania? – tee

1

Właśnie dostałem bardzo podobny błąd podczas próby zmiany bazy, która nie zakończyła się niepowodzeniem. Żadna z powyższych wskazówek nie pomogła. Oto, co widziałem:

$ git pull --rebase 
warning: refname 'xport1' is ambiguous. 
First, rewinding head to replay your work on top of it... 
Fast-forwarded xport1 to 98b787b0ea1f7f6771a5b1b56c7e8cc67b84c242. 
error: Ref refs/heads/xport1 is at 98b787b0ea1f7f6771a5b1b56c7e8cc67b84c242 but expected 3865d63ffb3a1a495363bfbd9ebb089e16152839 
fatal: Cannot lock the ref 'refs/heads/xport1'. 
Could not move back to refs/heads/xport1 

Okazuje się, że jeśli nazwa odniesienia jest niejednoznaczną The rebase nie powiedzie się, przynajmniej na git wersji 1.7.10.2 (Apple Git-33). Sprawdziłem i zobaczyłem, że przypadkowo utworzyłem tag o tej samej nazwie, co gałąź, którą próbowałem zmienić. Usunięcie tagu spowodowało usunięcie tego błędu.