2013-12-05 2 views
1

У меня есть три основных ветки, которые я обычно использую. Мы можем назвать их мастером, постановкой и развитием. Пару недель назад я думаю, что я или кто-то из моей команды переустанавливал или сливал что-то странным образом, так что теперь, когда мы вносим изменения в разработку, а затем пытаемся переустановить их на стадию, мы получаем конфликт в одном файле. HEAD всегда правилен, когда это происходит. Когда я вручную пойти и забрать это и попытаться мерзавец git rebase --continue, я получаю:Git Rebase на двух ветвях имеет одинаковые конфликты каждый раз

Нет изменений - вы забыли использовать «Git надстройку»? Если ничего не осталось на сцене, скорее всего, что-то еще уже ввело те же самые изменений; вы можете пропустить этот патч.

Таким образом, я могу уйти с работы git rebase --skip, чтобы избавиться от этой проблемы сейчас, просто идти с головой, и получить мои новые изменения в промежуточной ветви. То же самое происходит, когда я пытаюсь затем перестроить постановку, чтобы справиться. Это было бы хорошо, за исключением того, что это то же самое происходит каждый раз, когда я делаю перезагрузку между этими ветвями сейчас, и проблема всегда , что старый точный файл.

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

+0

Вы можете переупорядочить фиксации с помощью интерактивного перезагрузки ('git rebase -i'). Ваша проблема также заставляет меня задаться вопросом, есть ли какой-то конфликт с пробелами, и у вас есть обработка пробелов, настроенная таким образом, что игнорирует его, но затем каждый раз конфликтует с ним. –

+0

@GaryFixler git rebase - я бы переупорядочил коммиты, которые уже были надавлены на удаленные компьютеры, и заставляют всех остальных работать над этими ветвями. – Eli

+0

Верно, но если вы хотите действительно изменить порядок этих коммитов, это то, что вам нужно будет сделать. Вы можете уйти с выполнением 'git revert' на более раннем, чтобы отменить его в новой фиксации, а затем перевести его еще раз. Однако это не похоже на проблему. –

ответ

0

я завелся дело с этим, перебазированиями две других ветвей на мастере:

git checkout some_branch 
git rebase master 

получить коммиты правильно упорядоченный (ничего не изменилось, так что изменение порядка было все, что произошло), а затем принудительно толкнул происхождение. Я тогда имел мои товарищи по команде сбросить эти ветви к происхождения:

git fetch --all 
git reset --hard origin/some_branch 

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

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