Почему `git push --force-with-lease` завершается с ошибкой" отклонено ... устаревшая информация ", даже если мое локальное хранилище обновлено с удаленным? - PullRequest
0 голосов
/ 17 мая 2019

Я пытаюсь принудительно отправить ребаз из ветви функций в удаленный репозиторий.Чтобы быть немного более безопасным, я пытаюсь использовать --force-with-lease, чтобы удостовериться, что в ветви не произошло никаких других изменений с момента последней загрузки.

Это не работает по причинам, которые я не понимаю:

$ git branch
* my-branch
  master

$ git push --force-with-lease origin my-branch -u
To gitlab.com:example/my-project.git
 ! [rejected]        my-branch -> my-branch (stale info)
error: failed to push some refs to 'git@gitlab.com:example/my-project.git'

Я попытался извлечь, чтобы выяснить, не вышел ли мой локальный кеш из строя:

$ git fetch

$ git push --force-with-lease origin my-branch -u
To gitlab.com:example/my-project.git
 ! [rejected]        my-branch -> my-branch (stale info)
error: failed to push some refs to 'git@gitlab.com:example/my-project.git'

Я попытался немного упростить команду push:

$ git push --force-with-lease
To gitlab.com:example/my-project.git
 ! [rejected]        my-branch -> my-branch (stale info)
error: failed to push some refs to 'git@gitlab.com:example/my-project.git'

Я пытался ограничить проверку моей веткой:

$ git push --force-with-lease=my-branch:origin/my-branch
To gitlab.com:example/my-project.git
 ! [rejected]        my-branch -> my-branch (stale info)
error: failed to push some refs to 'git@gitlab.com:example/my-project.git'

Как вы можете видеть, она каждый раз терпит неудачу.

Почему мой толчок не срабатывает и как мне исправитьэто?

1 Ответ

0 голосов
/ 17 мая 2019

В этом случае оказалось, что проблема заключалась в том, что удаленная ветвь была удалена, но в моем локальном репо все еще была ее копия. Fetch не удаляет локальные копии по умолчанию, поэтому это никак не отразилось.

Добавление опции --prune к моему исходному git pull (до выполнения моей ребазировки) исправляет эту проблему.

...