Связь между коммитами git и элементами обзора в Gerrit

Когда я git commit захожу в свою локальную ветку, мне нравится коммитить один файл за раз, чтобы я мог поместить сообщение коммита, посвященное только этому файлу. Я только что закончил работу над задачей и изменил всего 8 файлов, каждый из которых был отдельной фиксацией со своим сообщением о коммите.

Когда я переместил свою локальную ветку в Gerrit, это создало 8 элементов проверки кода, а не то, что я хотел. Я хотел один элемент обзора с 8 изменениями файлов, объединенными вместе.

Вопрос 1. Означает ли один коммит git один элемент проверки Gerrit?

Вопрос 2. Как отменить отправку в Gerrit?

Вопрос 3. Как мне заставить его работать так, чтобы у меня были отдельные фиксации файлов и сообщения о коммитах, но один элемент обзора, когда он помещается в Gerrit?


person amphibient    schedule 06.11.2013    source источник


Ответы (1)


A1: Да, элемент обзора Gerrit создается для каждого отправленного вами коммита.

A2: Чтобы отменить отправку в Gerrit, используйте кнопку «Отказаться» в Gerrit для каждого элемента обзора.

A3: Вам нужно будет сжать ваши несколько коммитов в один коммит перед отправкой в ​​Gerrit. Используйте git rebase -i, чтобы переписать свои коммиты в один, а затем отправьте в Gerrit.

person Greg Hewgill    schedule 06.11.2013
comment
Итак, IOW, нет возможности иметь отдельные сообщения о коммите для каждого файла, зафиксированного в многофайловом коммите, это правильно? - person amphibient; 07.11.2013
comment
Я отказался от всех обзоров в Gerrit, но когда я сделал git rebase -i <mylocalbranch>, он не показал ничего, что можно было бы перебазировать. Может быть, потому что я уже нажал локальную ветку? - person amphibient; 07.11.2013
comment
@amphibient: Аргумент rebase -i - это то, с чего начать перебазирование. Если вы назовете свою локальную ветку, то следующих коммитов для перебазирования не будет, поэтому делать нечего. Попробуйте git rebase -i HEAD~10, если хотите раздавить последние 8 коммитов. - person Greg Hewgill; 07.11.2013
comment
Когда вы сжимаете коммиты, вы можете объединить все ваши сообщения коммитов для каждого файла в одно сообщение коммита для сжатых коммитов. Таким образом, вам не придется терять информацию. - person Greg Hewgill; 07.11.2013
comment
Ответ полностью соответствует вашим вопросам. Однако меня интересует ваш рабочий процесс с фиксацией для каждого файла. Я бы сказал, что если это одно изменение, охватывающее несколько файлов (которые должны быть объединены либо все, либо ничего), то это должен быть один коммит. Если это несколько атомарных изменений, то сделайте коммит для каждого из них (а также просмотрите их по отдельности). - person StephenKing; 07.11.2013