2011-11-25 10 views
5

Zrobiłem Checkout z wcześniej popełnić:"Not obecnie na oddziale" po wykonaniu popełnić

git checkout 12345 

następnie z powrotem do ostatniego zatwierdzenia:

git checkout 56789 

A potem kontynuował popełnienia i ja "m:

Obecnie nie ma żadnych oddziałów.

Może powinien robiłem:

git checkout master 

Po pierwszej kasie, zamiast wskazując id popełnił.

Nadal każdy pomysł, jak dostać moje ostatnie commits do głównego oddziału (który jest kilka zobowiązuje za)?

Dzięki

Odpowiedz

10

Gdy wykonasz git checkout 12345, nie będziesz w stanie oddziału. Nie rób tego. Jest to przeznaczone raczej do inspekcji, niż do pracy w nim.

Jeśli jesteś na master i chcesz zresetować swojego pana do popełnienia że chciałeś użyć git reset 12345 (lub dostarczyć --hard) Jeśli chciał gałęzi, użyj git checkout -b <name> <sha1> utworzyć oddział w tym punkcie i rozpocząć pracę tam.

Podobnie, gdy wróci, jak wspomniałeś, należy zrobić git checkout master

Teraz, gdy popełnili ponad 56789, zanotować popełnić ponad 56789, a następnie checkout master, a zrobić:

git reset <commit_over_56789> 
+0

Uważam, że Twoja odpowiedź jest bardziej pouczająca. Dzięki :-) –

+0

+1. "Git Checkout Master" było wszystkim, czego potrzebowałem. –

4

Jeśli rozumiem zostanie poprawnie, twój mistrz oddział jest za Twój ostatni wkład (56789), i chcesz, aby wskazać, że.

Jeśli to przypadek, robiąc:

git branch -f master 56789 

zresetuje oddział główny punkt do zatwierdzenia. git checkout master po tym i powinieneś być dobry.

+0

Można również po prostu "git checkout master && git rebase 56789", zakładając, że kopia robocza jest czysta. – Romain

+0

Idealny. Wielkie dzięki, Mat i Romain! –

+0

Wielkie dzięki, pracował dla mnie. Osobiście uważam, że ta odpowiedź jest bardziej przydatna niż ta druga. –

Powiązane problemy