Подтвердить что ты не робот

Git push remote reject {change ### closed}

У меня возникают проблемы с переносом моих изменений с моего локального мастера на удаленный мастер из-за этой ошибки:

remote: Processing changes: refs: 1, done
To ssh://[email protected]:29418/xxxxxx
 ! [remote rejected] HEAD -> refs/for/master (change 14823 closed)
error: failed to push some refs to 'ssh://[email protected]:29418/xxxxxx'

любая идея, как я могу исправить эту проблему?

git статус говорит, что моя ветка впереди начала/хозяина на 5 коммитов.

4b9b3361

Ответ 1

Я получил то же сообщение. И это было потому, что мне удалось получить тот же Change-Id для двух коммитов. Может быть, из-за черешни или сходства между моими местными веткими. Решенный путем удаления идентификатора изменения из сообщения фиксации, новый идентификатор был добавлен крюком фиксации.

Ответ 2

Я нашел следующую страницу, в которой точно указано, почему вы не можете нажать свои изменения в начале координат из-за изменения закрытой ошибки XXXXX: https://git.eclipse.org/r/Documentation/error-change-closed.html

Ура!

Ответ 3

Идентификатор вашей цели изменения истек, т.е. обзор 14823 закрыт. вы не можете нажать на него.

Сделайте это, чтобы исправить проблему:

  • git commit --amend
  • удалить идентификатор изменения
  • сохранить и выйти
  • Новый идентификатор изменения будет добавлен в фиксацию. его можно проверить с помощью git log.
  • нажмите еще раз

Ответ 4

У вас есть 5 коммитов.

Все они имеют файл под названием "Commit Message" (используется Gerrit).
Один из этих файлов имеет плохой "Change-Id", который уже был принят и сливается с мастером по Gerrit и, следовательно, не может быть снова использован.

Одно исправление - объединить все 5 коммитов в один,
и в процессе этого,
удалите "Change-Id" в файле "Commit Message".

В моем случае у меня было 3 коммита, так что я сделал:
git rebase -i HEAD ~ 3

Есть и другие способы слияния нескольких коммитов:
Сквош мой последний X коммитируется вместе с помощью Git

Ответ 5

Сообщение change 14823 closed не получено от vanilla git. Он указывает, что тот, кто поддерживает этот репозиторий, имеет крюк обновления или пост-обновления, который оценивает ваш push и отклоняет его из-за локальной политики (я предполагаю, что вы добавляете дополнительные коммиты в проблему, которая уже была отмечена как завершенная/закрытая). Вам нужно будет выяснить, что такое эти политики, и нужно ли вам каким-то образом восстановить изменения, чтобы вы могли добавить в него коммиты, или если вам нужно создать новый запрос на изменение и (возможно) переустановить свою работу против он.

Ответ 6

git статус говорит, что моя ветка впереди начала/хозяина на 5 коммитов.

все, что делает, - это выбор последнего кода. делая некоторые хитрости и подталкивая его.

Что это за 5 коммитов? Они все ваши?

Соответствует ли изменение 14823 одному из этих 5 коммитов? Каков его статус в Gerrit?

Ответ 7

Вы нажимаете на gerrit, который является средством просмотра кода, как указано как url ​​(ssh://[email protected]: 29418/xxxxxx), так и "HEAD → refs/для/master". Вам нужно проконсультироваться с тем, кто поддерживает репозиторий, на который вы пытаетесь нажать, чтобы понять, почему отклонение отклоняется.

Ответ 8

в моем случае у меня было 2 коммита, первая фиксация была моей, а вторая - нет, поэтому я исправляю ее так:

  • узнать, какие файлы были зафиксированы в изменении 14823
  • найдите свою самую старую фиксацию и сделайте soft reset ее родитель. имейте в виду, что если вы делаете жесткий reset, вы можете потерять все свои коммиты.
  • попытайтесь зафиксировать свои изменения еще раз, но в это время без файлов из изменить 14823

Я надеюсь, что это будет полезно.

Ответ 9

Попробуйте это. git push --no-thin origin xxxxxx: refs/for/sprint/yyyyyy

Ответ 10

Я и моя старшая работа более 1 часа, чтобы получить решение, Итак, я попробовал ниже, Он работает для меня

  • Резервное копирование всех ветвей из папки .git/logs/refs/heads/{{branch}} и обновленных файлов в репо
  • Удаленные ветки, которые вызывают ошибку.
  • Создать ветку git branch '{{новое название ветки}}' "
  • переместить файлы репо в соответствующую папку
  • git commit -m "{{commit message}}"
  • git push origin HEAD: refs/for/master

Каждая вещь должна быть прекрасной и красивой.

Ответ 11

Я тоже сталкиваюсь с этой проблемой, когда я нажимаю свою фиксацию, и терминал говорит:

! [удаленное отклонение] HEAD → refs/for/android_ui.lnx.1.2.c1-dev (с изменением 1692698 закрыто)

Я перехожу на сайт, чтобы увидеть изменение, соответствующее 1692698, сообщение о фиксации: "Подсказка поддержки USB-модема при первом включении WiFi hostpot"

Затем покажите журналы фиксации в терминале:

  • b49c0f91744cb6f863616976c4fb4157c7af4b8c Неверное приглашение при включении USB-модема с подключенным Wi-Fi.
  • eb47ef919064aff516ced4bbd9d8ade0ed34b107 Запросить поддержку привязки USB при первом включении WiFi hostpot
  • 753668be1207baa514be1bbd985f3db2d6317608 Исправить ошибку об ошибке Hotstop.

Причина отказа push заключается в том, что текущий идентификатор изменения совпадает с текущим значением eb47ef919064aff516ced4bbd9d8ade0ed34b107. поэтому я создаю резервную копию текущего изменения и reset hard to 753668be1207baa514be1bbd985f3db2d6317608, а затем применим резервное изменение, добавление, фиксацию и последующее нажатие последовательно.

Надеюсь, это может решить вашу проблему.

Ответ 12

Это может произойти, если уже существует изменение на gerrit, которое либо было объединено, либо даже оставлено. Если заброшено, что было моим делом, восстановите это изменение на gerrit и примените новое изменение поверх восстановленного изменения.

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

Ответ 13

У вас есть 5 коммитов.

Каждая фиксация имеет "Commit Message", которая может содержать строку "Change-Id:", которая идентифицирует, какой запрос на изменение принадлежит для Gerrit (см. https://git.eclipse.org/r/Documentation/user-changeid.html)

В этом случае один (или более) запросов на изменение, идентифицированный строками Change-Id, уже сгруппирован или оставлен Gerrit и, следовательно, не может быть снова использован.

Вам необходимо изменить сообщение фиксации для одного (или более) коммитов, прежде чем нажимать их (см. http://schacon.github.io/history.html), либо удалить их, чтобы создать новые запросы на изменение или изменить их, чтобы они идентифицировали правильные запросы на изменение Gerrit для каждой фиксации.

Ответ 14

Решение для пользователей EGit:

  • Нажмите кнопку "Изменить" введите описание изображения здесь


  1. Удалить Change-Id из области сообщения сообщения с помощью кнопки backspace (это будет нечто иное, чем этот снимок экрана)
  2. Нажмите кнопку "Добавить изменение идентификатора" введите описание изображения здесь

  3. Зафиксируйте свои изменения и нажмите.

Ответ 15

Это должно сделать это:

git commit --amend

Удалите идентификатор изменения, а затем нажмите для просмотра.