Czy za pomocą reverta cofne pushniętego commita?

0

Czy za pomocą reverta cofne pushniętego commita? Czy do tego używa się reset --hard?

0

Revert tworzy commita odwrotnego, więc będziesz miał dwa commity. Jeśli chcesz obciąć najnowszy commit z listy commitów na zdalnym repozytorium to zostaje push --force, co popsuje pracę wszystkim innym osobom, które ściągnęły sobie brancha z felernym commitem.

0

Czyli jeśli chcę cofnąć pushnietego commita z repo zdalnego to należy użyć git reset --hard, a następnie git push --force?

1

Generalnie tak. Następnie wyślij mejla z przeprosinami i ostrzeżeniem dla każdego kto mógł wciągnąć tego brancha lokalnie u siebie, by zrobił sobie clean checkout (czyli mniej więcej taki zabieg: https://stackoverflow.com/questions/5657451/how-to-get-a-fresh-copy-of-a-branch-from-the-remote-repository )

0

Jeszcze co do reverta commita to jak go wykonam to te zmiany, które cofam będą u mnie nadal lokalnie w projekcie i będą one pokazane jak uncommited?

0

Jeśli zrobisz git reset --hard to nie będziesz miał nic do zacommitowania. git push --force nie wymaga żadnych dodatkowych commitów. Nie rozumiesz, że wymazanie commita z historii to cofnięcie się, a nie dołożenie kolejnego commita? Tak w ogóle to za pomocą git push --force możesz dowolnie podmienić zawartość brancha, np z historii commitów A -> B -> C, na np X -> A -> U -> B albo dowolną inną.

0

Chodziło mi o to, że robie jakieś zmiany w projekcie i daje commita, ale go nie pushuje. Wtedy robie reverta tego commita i czy te zmiany, które wprowadziłem w projekcie będą wtedy jako uncommited?

0

W pierwszym poście napisałeś, że zrobiłeś pusha, a teraz piszesz że jednak nie zrobiłeś. Określ się albo napisz kiedy zmieniasz temat i opisz go od nowa.

Natomiast jeśli po niechcianym commicie nie zrobiłeś pusha to po jego usunięciu też nie będziesz musiał robić pusha. git status pokaże ci, że twoja kopia brancha jest identyczna ze zdalną i wszystko będzie grało.

Ponadto:
git reset cofa wskaźnik brancha (w typowym przypadku oczywiście). git revert natomiast tworzy nowego commita, więc przesuwa wskaźnik brancha do przodu. To dwie zupełnie różne rzeczy.

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