Аннотация: Чтобы воспроизвести ошибку
- создать ветку и проверить ее
- пусть кто-то еще удалит его и создаст новую ветку с тем же именем
- теперь
git branch -D <branch>иgit checkout -b <branch> --track origin/<branch> - на
git pullвы получаете! [rejected] <branch> -> origin/<branch> (non-fast-forward)
чтобы исправить это, вы также должны удалить информацию дистанционного отслеживания с помощью git branch -d -r origin/<branch>
OLD: кто-то удалил ветку разработки и создал ее, чтобы удалить все ветки функций и снова использовать мастер. Затем он добавил некоторые из ветвей функций, но не некоторые другие, которые создавали проблемы.
Я сделал git branch -D develop и git checkout -b develop --track origin/develop.
Когда я сейчас попробую git pull, я получу a ! [rejected] develop -> origin/develop (non-fast-forward)
a git remote show origin показывает
Local refs configured for 'git push':
develop pushes to develop (local out of date)
Теперь я могу сделать git fetch origin develop и git merge FETCH_HEAD, но потом у меня есть некоторые конфликты, и он хочет подтолкнуть много вещей для развития. (может быть, старая ветвь совершает?) И с git reset --hard я вернулся туда, где трюк git показывает отклоненное сообщение.
Как лучше всего проверить восстановленную ветку?
EDIT: даже когда я делаю git branch -D develop, я получаю с git pull ! [rejected] develop -> origin/develop (non-fast-forward) и git remote show origin все (в актуальном состоянии)
EDIT: я не узнал его поначалу, потому что сообщение фиксации было таким же, но после reset HEAD находится на шаге, которого нет у удаленного, так что все еще на "старой" ветке?