• 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

Aruba Cloud - Virtual Private Server VPS
0 głosów
564 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 Mentor (352,580 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 Mentor (352,580 p.)
- wchodzisz na mastera

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

Podobne pytania

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

93,335 zapytań

142,330 odpowiedzi

322,410 komentarzy

62,670 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...