2015-01-20 4 views
1

У меня есть эта проблемаГеррит Слияние двух фиксаций

master -> First commit (BROKEN) -> Second commit (Fix of previous commit) 

Как мне решить эту проблему, (не должно было случиться, должно было быть изменить из первой фиксации, а не второй фиксации)?

Могу ли я изменить/объединить две коммиты в gerrit gui?

Не мои фиксаций, поэтому их не имеют локально

ответ

4

Короче:

Нет, вы не можете объединить их в Геррит GUI. (вы могли бы написать плагин, если вы действительно хотели).

Способ по умолчанию состоит в том, чтобы исправить его локально (т. Е. Объединить обе фиксации, используя либо git rebase --interactive, либо git reset --soft HEAD~1; git commit).

Затем нажмите комбинированный фиксатор.

Наконец, отмените устаревшую (и обозначенную как OUTDATED) вторую фиксацию с использованием gui/website.

+0

Но тогда мне нужно загрузить их отдельно от Gerrit? Вижу ли я их обоих в местном отделении? –

+0

Если это были ваши коммиты, вы уже должны иметь их локально. Если нет, да, самым простым способом может быть просто вишня - выбрать их как для локальной ветви. – blackbuild

+0

Должен упомянуть, а не мои коммиты –

2

В зависимости от вашей детальной проблемы существует множество возможных решений. Но переход в git shell был бы лучшей отправной точкой IMHO;)

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

git rebase --interactive origin/master 

Появится окно редактора, в котором вы можете отметить фиксацию фиксации как исправление. Закройте редактор, и оба фиксации будут объединены с одним фиксатором.

Вместо origin/master, который является отправной точкой для вашей переустановки, вы также можете использовать что-то вроде HEAD~2, которое начнет 2 фиксации перед вашей текущей головой.

+0

Но тогда мне нужно скачать их отдельно от Gerrit? Вижу ли я их обоих в местном отделении? –

+0

Да, я так думаю. AFAIK невозможно сделать это внутри gerrit и нужно сделать «вверх по течению», – frlan

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