2015-01-05 3 views
1

Я новичок мерзавцу команды и первый раз необходимость делать такие вещи и понятия не имею, с чего начать Что я есть сейчас:Переместить указатель на последний существующий фиксацию мастер

То, что я хочу

branch-name     E 
         /
master A - B - C - D - F- G 

Как это сделать?

Edit: Сообщение об ошибке

git rebase master закончил с ошибкой электронного письма:

КОНФЛИКТ (изменить/удалить): file.txt удалены в голове и modifie д в Initial фиксации. Версия Первоначальная фиксация файла file.txt слева в дереве. Не удалось объединить изменения. Патч не выполнен в 0001 Исходное завершение Копия исправленного патча находится в: project-path/.git/rebase-apply/patch Предупреждение: ваш шрифт консоли, вероятно, не поддерживает Unicode. Если у вас есть s символов треугольника на выходе, рассмотрите возможность переключения на шрифт TrueType, например L ucida Console!

ответ

2

Это простой git rebase:

git checkout branch-name 
git rebase master 

Но вы, возможно, придется заставить нажим ответвлением имя после перебазирования (если вы уже толкнул его раньше): git push --force.
Это может быть проблематично, если другие уже работали над той же самой веткой в ​​своем собственном локальном репо, так как им пришлось бы переустановить ее на новую историю.
В этом случае (филиал уже толкнул), альтернатива будет (подобно тому, что описано в разделе «alternative to rebasing pushed commits»):

  • слияния master к branch-name (не всегда рассматриваются как лучшая практика)
  • git cherry-pick в новой отрасли
+0

'мерзавец перебазироваться --onto филиал имя-мастер филиал-name' может также работать –

+0

Я думаю, что это то, что мне нужно, но есть некоторые конфликты с перебазирования (удаленный файл в обоих ответвлением имя и мастера) – harry180

+0

@ harry180 как в http://stackoverflow.com/q/5516391/6309? – VonC

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