Gerrit воссоздает изменения-иды
Я использую gerrit. Я использовал следующую команду
$ cd .git/hooks
$ scp -P 29418 [email protected]:hooks/commit-msg .
$ cd ../..
Это добавляет идентификатор изменения в мое сообщение фиксации, однако, если я исправляю фиксацию, он создает NEW change-id. Поэтому, когда я возвращаюсь к gerrit, это не добавляет набор патчей, он создает совершенно новую запись отзыва.
Кто-нибудь предлагает?
Нашел ответ, но stackoverflow не позволит мне ответить на мой собственный вопрос.
Так что это была полная ошибка с моей стороны.
Когда я пытался совершить git commit --amend -m "Начальная фиксация"
Я вставлял сообщение о фиксации, и оно уничтожало идентификатор изменения, тем самым давая мне новый.
Ответы
Ответ 1
commit-msg работает так:
- Проверьте, есть ли у вас идентификатор изменения в сообщении о фиксации.
- Если нет, генерирует один.
Если вы наберете git commit --amend
и отредактируете сообщение фиксации, у вас все еще есть старый идентификатор изменения (это хорошо).
Но если вы наберете git commit --amend -m "...."
, вы удалили change-id, поэтому gerrit генерирует новый.
Правило большого пальца:
Не используйте --amend -m
с герритом.
Ответ 2
Если git commit --amend
или git commit --amend -m "...."
не помогает, а gerrit все еще жалуется на отсутствующий идентификатор изменения. (Это происходит из-за проблем с сетью в основном)
Вот как я получил это решение (Убедитесь, что я применил привязку commit-msg, в родительском каталоге извлеченного каталога ссылка):
- С помощью
git stash
выберите "Сменить изменения".
- Используется
gitk &
, чтобы переустановить изменение только на предыдущую фиксацию.
![введите описание изображения здесь]()
- Затем вытащите и переустановите из Repo
git pull --rebase
.
- Затем примените спрятанные изменения с помощью
git stash apply
, справки.
Разрешить конфликты слияния, если они используются git mergetool
.
- Снова повторив изменение с помощью
git commit
или git commit --amend
, это сгенерировало новое изменение-Id
- Нажмите на изменения в ветке в репозитории, используя команду
git push ...
.
Аналогичный вопрос есть и для справки
Ответ 3
-
git commit --amend
- Удалите строку Change-Id вручную, сохраните и закройте
-
git commit --amend --no-edit
А хук создаст новый хэш Change-Id, при его отсутствии.