Git checkout hash, po co to używać?

0

Z waszego doświadczenia: po co używać polecenia git checkout hash_danego_commita? Czy jest to często używane? I czemu to służy?
Nie za bardzo rozumiem idei, bo ok po wpisaniu tego polecenia cofa Cię danego commita. Ale czy po cofnięciu jak jesteś w trybie "odłączonej głowy" jedyne co możesz zrobić to utworzyć nową gałąź zeby zapisać zmiany? Czy to stosuje się do zwykłego cofnięcia się po commitach (tak jak np. git reset ~1)? Czy da się to zrobić bez tworzenia nowej gałęzi (git checkout -b branch)?

1

po co używać polecenia git checkout hash_danego_commita?

Aby cofnąć się do stanu repozytorium zgodnego z danym commitem :-)

Czy jest to często używane?

Statystyk raczej nikt nie prowadzi, więc ciężko powiedzieć konkretniej.

I czemu to służy?

Znajomy w pracy przykładowo sprawdza w taki sposób merge requesty na swoim komputerze - nie musi przez to tworzyć lokalnych branczy, które za moment i tak by usunął.

Czy to stosuje się do zwykłego cofnięcia się po commitach (tak jak np. git reset ~1)?

  • revert tworzy nowy commit, który możesz wypchnąć do zewnętrznego repozytorium,
  • reset przesuwa głowę aktualnej gałęzi na dowolny inny commit (co również jest informacją, którą możesz wypchnąć do zewnętrznego repozytorium - przeważnie jednak tylko przez push --force),
  • checkout umożliwia podgląd stanu repozytorium na danym commicie, lecz nie wprowadza żadnych zmian w samej strukturze repozytorium czy commitach (nie licząc reflogów AFAIK).

Czy da się to zrobić bez tworzenia nowej gałęzi (git checkout -b branch)?

Czym jest to?

0

Znajomy w pracy przykładowo sprawdza w taki sposób merge requesty na swoim komputerze - nie musi przez to tworzyć lokalnych branczy, które za moment i tak by usunął.
Mógłbyś trochę więcej napisać w jaki sposób wykorzystać to polecenie do testów merge requestów?
Z tego co napisałeś, wnioskuję, że polecenie bardziej służy do testów, jak przy danym commicie wyglada repozytorium

0

Robisz git checkout hash-commita i sprawdzasz czy aplikacja działa tak, jak powinna ;-)

0

Mi się zdarzyło to użyć jeszcze w przypadku, gdy chciałem usunąć kilka nienastępujących po sobie commitów, które ktoś wprowadził do gałęzi, a coś psuły.

0

Możesz tak też robić fiksy na stare commity (aczkolwiek tutaj łatwiej skakać do taga niż bezpośrednio do hasha). Innym przykładem, który używam (ale nie bezpośrednio) jest odpalanie testów na wszystkich commitach "po drodze" by zobaczyć czy wszystkie commity się budują (przydatne w przypadku ewentualnego bisect w przyszłości). Do tego używam git-test od Spotify.

1 użytkowników online, w tym zalogowanych: 0, gości: 1