Аннотация: Чтобы воспроизвести ошибку
- создать ветку и проверить ее
- пусть кто-то еще удалит его и создаст новую ветку с тем же именем
- теперь
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 находится на шаге, которого нет у удаленного, так что все еще на "старой" ветке?