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>
igit 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 № 1musiał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
.