Git rebase vs git -f

0

Czesc, czy moglby mi ktos wytlumaczyc jaka jest roznica miedzy rebase a git push origin -f bez wczesniejszego rabase'owania ? Jesli chce sobie ulozyc commity moge to zrobic na conajmniej 2 spsooby. Wczesniej wspomniany rebase albo po prostu reset HEAD, i pozniej push z forcem. Slyszalem, ze rebase sie stosuje do takich rzeczy. Glownie chodzi mi o kod ktory juz jest na serwerze. Bo poki pracujemy lokalnie to wiem ze to jest zadna roznica.

pozdrawiam

0

o_O przecież to co opisujesz robi zupełnie co innego.

Rebase powoduje przetasowanie historii w taki sposób, że commity w twoim branchu zostają przesunięte na sam początek. To znaczy git aplikuje te commity jeden po drugim na aktualny origin head więc finalnie wygląda to tak jakbyś zaczął swoje commity pisać będąc już na aktualnym head. Czyli zmienia sie "baza" twoich commitów - zamiast faktycznego miejsca z którego zrobiłeś branch, nową bazą staje sie aktualny head. Jako ze zmienia to historię to musisz potem zrobić push force, żeby nadpisać stan zdalnego brancha.

Nie wiem jak sie wg ciebie ma to do git push origin -f bez wczesniejszego rabase'owania bo w ogóle force nie ma w takiej sytuacji sensu, to jest po prostu to samo co zwykły git push czyli wypchnięcie do zdalnego repozytorium commitów z lokalnego repo, chyba ze robiłeś jakis reset w międzyczasie.

prostu reset HEAD, i pozniej push z forcem

Nie no tylko że coś takiego po prostu wycofa ci jakieś commity. Czyli zrobiłeś 10 commitów, pushnąłeś do repo a potem zorientowałeś sie że te commity mialy iść do innego brancha albo coś i chcesz je wycofać. Wtedy mozesz zrobić reset do jakiegoś miejsca i push -f żeby nadpisać historię i nagle w zdalnym repo będzie widać że zrobiłeś tylko kilka commitów a nie wszystkie 10. Nijak się to ma do rebase.

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