Git - powrócenie do wybranegocommita i push

Git - powrócenie do wybranegocommita i push
DA
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:4
0

Witam serdecznie,

na serwerze GitLab'a, na głównym drzewie "master" mam 4 "commit'y", chcę powrócić lokalnie do "commit'a" 2, wykonać sobie kilka zmian, i zrobić nowego "commit'a" numer 5, następnie "git push -u origin master".

Jak to zrobić ?

Z góry dzięki za informacje.

azalut
tzn cofnąć wszystkie zmiany z commitów 4 i 3, zrobić coś w drugim i push jako nowy commit?
niezdecydowany
niezdecydowany
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 9 lat
  • Lokalizacja:Bieszczady
3

Jeżeli chcesz się cofnąć do commita na chwilę to:
git checkout tutaj_numer_commita
ten numer dostaniesz jak zrobisz git log - ewentualnie polecam: https://coderwall.com/p/euwpig/a-better-git-log - ja mam faze na kolorowe literki w konsoli.

Jeżeli chcesz np: cofnąć się do commita,zostać tam i wypushować te zmiany na serwer.

git reset --hard number_commita
git push origin nazwa_brancha --force

mówisz gitowi żeby olał to co jest na remote'cie i zastąpił to Twoimi lokalnymi zmianami.

A jeżeli chcesz się cofnąć 4 commity wstecz, zrobić tam jakieś zmiany i zrobić commit - to, to jest głupie i powątpiewam że takie coś jest możliwe.


"Perhaps surprisingly, concurrent programming isn’t so much about threads or
locks, any more than civil engineering is about rivets and I-beams."
edytowany 3x, ostatnio: niezdecydowany
DA
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:4
0
niezdecydowany napisał(a):

Jeżeli chcesz się cofnąć do commita na chwilę to:
git checkout tutaj_numer_commita
ten numer dostaniesz jak zrobisz git log - ewentualnie polecam: https://coderwall.com/p/euwpig/a-better-git-log - ja mam faze na kolorowe literki w konsoli.

Jeżeli chcesz np: cofnąć się do commita,zostać tam i wypushować te zmiany na serwer.

git reset --hard number_commita
git push origin nazwa_brancha --force

mówisz gitowi żeby olał to co jest na remote'cie i zastąpił to Twoimi lokalnymi zmianami.

A jeżeli chcesz się cofnąć 4 commity wstecz, zrobić tam jakieś zmiany i zrobić commit - to, to jest głupie i powątpiewam że takie coś jest możliwe.

Ok, w takim układzie możliwe jest cofnięcie wyłącznie o jednego commita, dodanie zmiany, nowy commit i push ?

Nie mogę cofnąć się o 2 commity, zrobić nowe zmiany, nowego comita i push ?

niezdecydowany
niezdecydowany
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 9 lat
  • Lokalizacja:Bieszczady
0

Ale czemu nie możesz dodać zmian na samej górze drzewa tylko musisz się cofać - bez sensu ? Czy ty chcesz USUNĄĆ COMMIT ?


"Perhaps surprisingly, concurrent programming isn’t so much about threads or
locks, any more than civil engineering is about rivets and I-beams."
edytowany 1x, ostatnio: niezdecydowany
DA
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:4
0
niezdecydowany napisał(a):

Ale czemu nie możesz dodać zmian na samej górze drzewa tylko musisz się cofać - bez sensu ? Czy ty chcesz USUNĄĆ COMMIT ?

Już mówię, zacommitowałem 2 razy na zdalne repo, i okazało się. że commitowałem z czymś co nie działa, mało tego usuwałem pliki z repo, które były odpowiedzialne za funkcjonowanie jednego, ale wykluczały drugie.

Muszę się cofnąć 2 commity - i z tego stanu, jeszcze raz wprowadzić zmiany ;) - następnie chce to skommitować na nowo, i push na repo zdalne.

somekind
Moderator
  • Rejestracja:około 17 lat
  • Ostatnio:około 4 godziny
  • Lokalizacja:Wrocław
2

Widzę, że ktoś tu jest dowcipny
user image

niezdecydowany
niezdecydowany
ehuehuheuheuheuheuheh ale śmieszkowy gif - ehuehuheuheuheuh
somekind
Raczej tragiczny. Jak pomysł zmieniania historii w publicznym repo.
niezdecydowany
niezdecydowany
aa faktycznie, on pisze o "masterze" - jak to problem wystąpił w jego pracy to będzie niezła beka :D PUSH FORCE ! PUSH FORCE !
Shalom
  • Rejestracja:ponad 21 lat
  • Ostatnio:około 3 lata
  • Lokalizacja:Space: the final frontier
  • Postów:26433
0

@DuoActive no to teraz wyobraź sobie jak to będzie wyglądalo w logu commitów a następnie wyboraź sobie WTFy kolegów którzy tego loga zobaczą. Nie kombinuj tylko zwyczajnie pociągni head, napraw coś napsuł i pushuj...


"Nie brookliński most, ale przemienić w jasny, nowy dzień najsmutniejszą noc - to jest dopiero coś!"
KR
  • Rejestracja:prawie 16 lat
  • Ostatnio:6 miesięcy
  • Postów:2514
2

najpierw znajdujesz hash uzywajac:
git log

jak na lokalnym repo to usuwasz tak:
git rebase -i hash_commita^

jak na zdalnym repo:
git revert hash_commita

jesli kazali Ci zrobic rebase na zdalnym to wtedy git push -f, ale jak tutaj cos zle zrobisz to zepsujesz zdalne repo, na serwerze lepiej miec ciaglosc historii i miec historie o tym ze Ci sie nie udalo i potem to naprawiasz

na lokalnym zupelnie usuniesz commita i zmienisz hashe wszystkich po nim, na zdalnym takich rzeczy sie nie robi i zamiast tego wysylasz odwroconego commita tego co zepsules.


░█░█░█░█░█░█░█░█░█░█░█░
edytowany 3x, ostatnio: krwq
DA
  • Rejestracja:ponad 10 lat
  • Ostatnio:około 10 lat
  • Postów:4
0

Dzięki za wyjaśnienie,

W takim układzie naprawiam z palca to co zepsułem, przywracając checkout'em konkretne pliki - następnie nowy commiti i push.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.