Геррит воссоздает изменения - PullRequest
13 голосов
/ 25 октября 2011

Я использую геррит. Я использовал следующую команду

$ cd .git/hooks
$ scp -P 29418 demo@localhost:hooks/commit-msg .
$ cd ../..

Это добавляет идентификатор изменения к моему сообщению фиксации, однако, если я изменяю коммит, он создает НОВЫЙ идентификатор изменения. Поэтому, когда я возвращаюсь к Gerrit, он не добавляет набор исправлений, а создает новую запись обзора.

Кто-нибудь предлагает, пожалуйста?

Нашел ответ, но stackoverflow не позволяет мне ответить на мой собственный вопрос.

Так что это была полная ошибка с моей стороны. Когда я пытался совершить git commit --amend -m "Начальная фиксация"

Я встраивал сообщение коммита, и это стирало идентификатор изменения, таким образом давая мне новый.

Ответы [ 3 ]

26 голосов
/ 06 декабря 2011

commit-msg hook работает таким образом:

  1. Проверьте, есть ли у вас идентификатор изменения в вашем сообщении о фиксации.
  2. Если нет, генерирует единицу.

Если вы наберете git commit --amend и отредактируете сообщение о коммите, у вас все еще будет старый идентификатор изменения (это хорошо).

Но если вы наберете git commit --amend -m "....", вы удалили change-id, поэтому gerrit создаст новый.

Правило большого пальца: Не используйте --amend -m с герритом.

1 голос
/ 26 августа 2015

Если git commit --amend или git commit --amend -m "...." не помогают, а геррит все еще жалуется на отсутствующий идентификатор изменения.(Это происходит в основном из-за проблем с сетью)

Вот так я и решил проблему (Убедитесь, что у меня применен хук commit-msg в родительском каталоге извлеченного каталога ссылка ):

  1. Stash the Changes с использованием git stash.
  2. Используется gitk &, чтобы жестко перебазировать изменение до только что предыдущего коммита.enter image description here
  3. Затем вытащите и отпустите из Repo git pull --rebase.
  4. Затем примените спрятанные изменения, используя git stash apply, эталон .Разрешить конфликты слияния, если таковые имеются, с использованием git mergetool.
  5. Повторное внесение изменений с использованием git commit или git commit --amend, это сгенерировало новый идентификатор изменения
  6. Нажмите изменения в ветви в хранилищеиспользуя команду git push ....

Существует также аналогичный вопрос для справки

0 голосов
/ 15 мая 2019
  1. git commit --amend
  2. Удалить строку Change-Id вручную, сохранить и закрыть
  3. git commit --amend --no-edit

А хук создаст новый хэш Change-Id, при его отсутствии.

...