• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Git - nadpisany commit - odzyskiwanie w repozytorium lokalnym

Object Storage Arubacloud
0 głosów
468 wizyt
pytanie zadane 31 marca 2017 w Inne języki przez Adam Kow Początkujący (260 p.)

Witam!
Stworzyłem przypadkowo commit w repozytorium publicznym (z poziomu strony internetowej), który chciałem nadpisać, jednak nie zorientowałem się, że w repozytorium lokalnym cofnąłem Head o jeden commit. W taki sposób nadpisałem niechciany komit publiczny i jeszcze jeden wcześniejszy. Żeby odzyskać ten lokalny commit użyłem komendy "git reflog". Po odznalezieniu zrobiłem "git reset --hard <SHA COMMITU>" i tutaj właśnie moja wiedza się skończyła, ponieważ nie moge pushować tego do repozytorium publicznego. tak wygląda log po "git reset --hard d8ecc52"

Po odpaleniu aplikacji, zauważyłem że cały czas brakuje kodu z commitu Local Storage Fix, a tak wygląda konsola po próbie commitowania:

2 odpowiedzi

+1 głos
odpowiedź 31 marca 2017 przez adrian17 Ekspert (344,860 p.)
"nothing to commit" -> Na pewno masz zmiany w repozytorium? Sprawdź z `git status` / `git show`.

Poza tym nie jesteś na gałęzi ("HEAD detached"). Musiałeś gdzieś w międzyczasie zrobić `git checkout <hash>`.

Jak już będziesz mieć najnowszy commit w stanie jakim chcesz, można poprawić gałęzie. Zakładając że gałąź którą chcesz nadpisać to `master`, najprościej (tylko dziesięć razy się upewnij że nie robisz pomyłki) pewnie będzie ją usunąć (`git branch -D master`) i stworzyć nową w miejscu gdzie jesteś (`git checkout -b master`),
komentarz 31 marca 2017 przez Adam Kow Początkujący (260 p.)
Pracuję tylko na jednym branchu. Zakładam że git reset do nadpisanego commita zadziałał tak jak git checkout. Jednak nadal nie mam kodu z tego commita
0 głosów
odpowiedź 31 marca 2017 przez Adam Kow Początkujący (260 p.)
Zorientowałem się właśnie, że utworzył mi się branch zawierający tylko commita którego próbuje odzyskać, a master wygląda tak samo jak w repozytorium publicznym, czyli wraz z tym commitem, którym nadpisałem tego pożądanego. Co mogę zrobić teraz, żeby go dołączyć do mastera?
1
komentarz 31 marca 2017 przez adrian17 Ekspert (344,860 p.)
- wchodzisz na mastera

- git cherry-pick <hash commita który chcesz przekopiować na mastera>

Podobne pytania

0 głosów
2 odpowiedzi 484 wizyt
0 głosów
3 odpowiedzi 781 wizyt
pytanie zadane 14 marca 2018 w Inne języki przez marcolo Obywatel (1,530 p.)
0 głosów
1 odpowiedź 1,540 wizyt
pytanie zadane 19 października 2017 w Inne języki przez Ring Początkujący (330 p.)

92,572 zapytań

141,423 odpowiedzi

319,645 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...