2016-11-22 5 views
0

Я использую git и gerrit для отзывов о кодах. После нажатия изменения с уникальным change id возникла проблема слиянием на панели gerrit. Поэтому я снова вытащил код и разрешил конфликт слияния, а затем решил внести изменения в изменения под тем же самым измененным идентификатором, но git этого не допустит. Amend не может быть сделано, если есть merge conflict. Вы должны сделать отдельную фиксацию. Так есть ли способ подтолкнуть мой обновленный код под тем же change id?Нажмите под таким же идентификатором изменения после слияния конфликта

ответ

2

Я думаю, что вы сбиваете с толку «Change-Id» (Gerrit) с «Commit-Id» (Git). Когда вы разрешили конфликт и внесли поправки в первоначальную фиксацию, новый коммит был сгенерирован (конечно) новым Commit-Id. Вы можете (на самом деле, вам нужно) сохранить тот же Change-Id в последней строке сообщения об изменениях, как, например:

Сменная Id: Id65100bb3841c73bb9dd2d2d6a69c77a5936681a

При нажатии этой фиксации на Геррит, он будет используйте эту строку, чтобы знать, что это коммитирование является исправлением оригинала, и оно добавит его к первоначальному изменению в качестве нового набора патчей.

Дополнительная информация here.

+0

i know commit id и change ids разные, его просто, что я привык к bitbucket и github, но gerrit требуется для текущего env im, работающего с, так что было немного напряженности, чтобы вносить изменения все время :) , Спасибо за ссылку, это очень помогло. – optimus

+0

Я понимаю, что «напряжение» Gerrit работает немного по-другому, но вы почувствуете себя очень комфортно с ним, как только вы привыкнете. –

+0

Использование «Change-Id», отображаемого в интерфейсе Gerrit, является ключом к решению этого вопроса - спасибо! – Aidan

0

затем решил изменить изменения в соответствии с той же смене идентификатора

Когда вы изменить коммита в Git, либо через git commit --amend, через Gerritt, или какой-либо другой инструмент, вы создать нового коммита , Старая фиксация была переписана и больше не является частью вашего филиала.

Таким образом, даже если вы изменили предыдущую фиксацию после разрешения конфликта слияния, все равно будет присутствовать новый фиксатор.

0

Нет. При попытке внести поправки в фиксацию новый фиксатор записывается с новым хешем, заменив предыдущую фиксацию. Если вы хотите объединить их вместе и сделать это одним фиксатором, вы можете использовать раздачу, или вы можете использовать soft reset 2 commits и создать новый коммит из этих 2, рискуя столкнуться с удаленным.

Смежные вопросы