/ / git usuwa i odtwarza gałąź - git

git usuń i odtwórz gałąź - git

Streszczenie: Aby odtworzyć błąd

  • stwórz oddział i sprawdź go
  • pozwól komuś innemu go usunąć i utwórz nowy oddział o tej samej nazwie
  • teraz zrób git branch -D <branch> i git checkout -b <branch> --track origin/<branch>
  • na git pull dostajesz ! [rejected] <branch> -> origin/<branch> (non-fast-forward)

aby to naprawić, musisz usunąć informacje o zdalnym śledzeniu za pomocą git branch -d -r origin/<branch> także


STARY: Ktoś usunął gałąź rozwijaną i utworzył ją, aby usunąć wszystkie gałęzie funkcji i ponownie ustawić ją jako bazę. Następnie dodał kilka gałęzi funkcji, ale nie kilka innych, które sprawiały problemy.

zrobiłem git branch -D develop i git checkout -b develop --track origin/develop.

Kiedy teraz spróbuję git pull dostałem ! [rejected] develop -> origin/develop (non-fast-forward)

za git remote show origin przedstawia

Local refs configured for "git push":
develop       pushes to develop     (local out of date)

teraz mogę zrobić git fetch origin develop i git merge FETCH_HEAD ale potem mam pewne konflikty i chce popchnąć wiele rzeczy do rozwoju. (może stary oddział zatwierdza?) I za pomocą git reset --hard Wracam tam, gdzie ciąg git pokazuje odrzuconą wiadomość ..

Jak najlepiej sprawdzić odtworzoną gałąź?

EDYTUJ: nawet gdy to robię git branch -D develop rozumiem git pull ! [rejected] develop -> origin/develop (non-fast-forward) i git remote show origin powiedział wszystko (na bieżąco)

EDYTUJ: nie rozpoznałem go na początku, ponieważ komunikat zatwierdzenia był taki sam, ale po zresetowaniu HEAD jest na sha, którego pilot nie ma, więc nadal na „starej” gałęzi?

Odpowiedzi:

9 dla odpowiedzi № 1

musiałem również usunąć gałąź śledzenia

git branch -d -r origin/develop

6 dla odpowiedzi nr 2

Nie możesz wyciągnąć, ponieważ jest to teraz inna gałąź.

Może powinieneś zacząć od zera i pobrać remote develop oddział jako nowy oddział lokalny!

git checkout -b new_develop --track origin/develop

Po wykonaniu tej czynności możesz połączyć lub zmienić gałęzie na lokalnym komputerze. Porównaj drzewa katalogów i inne pliki.

Jeśli skończyłeś edytować, po prostu usuń lokalne develop oddział i zmień nazwę new_develop do develop.