W moim repozytorium git wykonałem 5 zatwierdzeń, jak poniżej w moim dzienniku git:
commit 4f8b120cdafecc5144d7cdae472c36ec80315fdc
Author: Michael
Date: Fri Feb 4 15:26:38 2011 -0800
commit b688d46f55db1bc304f7f689a065331fc1715079
Author: Michael
Date: Mon Jan 31 10:37:42 2011 -0800
commit b364f9dcec3b0d52666c4f03eb5f6efb7e1e7bda
Author: Michael
Date: Wed Jan 26 13:33:17 2011 -0800
commit 4771e26619b9acba3f059b491c6c6d70115e696c
Author: Michael
Date: Wed Jan 26 11:16:51 2011 -0800
commit 6e559cb951b9bfa14243b925c1972a1bd2586d59
Author: Michael
Date: Fri Jan 21 11:42:27 2011 -0800
Jak mogę cofnąć moje poprzednie 4 zatwierdzenia lokalnie w oddziale? Innymi słowy, jak mogę stworzyć gałąź bez moich ostatnich 4 zatwierdzeń (załóżmy, że mam SHA tego zatwierdzenia z dziennika git)?
<commit_hash>
jest w innej gałęzi, która jest przed nami?git checkout master
, obok jednego lub dwóch skrajnych przypadków, które mogą mieć zastosowanie w określonych sytuacjach.Jeśli chcesz odrzucić ostatnie cztery zatwierdzenia, użyj:
Alternatywnie możesz określić skrót zatwierdzenia, do którego chcesz zresetować:
źródło
git reflog
i zresetować ją z powrotem - ale byłoby to wyrzuceniem ich, tak.Po prostu zaznacz commit, od którego chcesz zacząć nową gałąź i utwórz nową gałąź
źródło
Co oznacza, że nie tworzysz nowej gałęzi i nie przechodzisz w stan odłączony. Nowy sposób to:
git switch --detach revison
źródło