Как восстановить закрытый коммит для сбора вишни на Геррите? - PullRequest
0 голосов
/ 10 марта 2020

Фон

Я использую Геррит. Один коммит C был объединен с веткой dev и его нужно было выбрать в ветку main. Один из моих коллег пытался выбрать вишню, используя следующую команду:

git checkout main
git cherry-pick `C`

Он нажал на Геррита, и после некоторого обзора он все испортил и в итоге отказался от коммита C на ветви main. Теперь, когда я пытаюсь свежо вишнево выбрать такой же коммит. Геррит отклоняет коммит до pu sh в ветке main, говоря, что коммит уже закрыт. Как политика, мы не можем считать sh новым коммитом, скорее, мы должны выбрать вишню для хранения истории ветвей.

To ssh://gerrit.company.net:29417/project
 ! [remote rejected]     HEAD -> refs/for/main (change https://gerrit.company.net/open/426535 closed)
error: failed to push some refs to 'ssh://me@gerrit.company.net:29417/project'

Как мне справиться с этой ситуацией?

Ответы [ 2 ]

1 голос
/ 10 марта 2020

Геррит отклоняет pu sh, потому что есть изменение (426535), что (a) имеет тот же Id-изменения, (b) для той же ветви (main) и (c) закрыт.

С https://gerrit-review.googlesource.com/Documentation/error-change-closed.html:

Если изменение, для которого вы хотите загрузить новый набор исправлений, было отменено и ваши новые изменения преодолевают Причины отказа от этого изменения Вы можете захотеть восстановить изменение в веб-интерфейсе Gerrit (просмотрите измененное изменение в веб-интерфейсе Gerrit и нажмите кнопку «Восстановить изменение»). После этого pu sh должен преуспеть, и будет создан новый набор патчей для этого изменения.

0 голосов
/ 10 марта 2020

Вы можете попытаться изменить идентификатор изменения вашего изменения:

  1. Изменить локальный коммит (commit --amend)

  2. Удалите Change-Id и сохраните

  3. Pu sh снова в Gerrit

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...