#git #rebase
#git #перебазирование
Вопрос:
В моем проекте используется ветка (скажем, ФУНКЦИЯ), которая долгое время была отделена от master sine (около 1 года).
На этой ветке было 100 коммитов …. то же самое и на master. Пути 2 сильно разошлись, и я хотел бы перебазировать ФУНКЦИОНАЛЬНУЮ ветку на master, чтобы уменьшить различия. Сама перебаза была длительной, но может быть решена. Я сделал перебазирование в отдельной ветке. Как только ветка будет собрана правильно и тщательно протестирована, моя цель — перезаписать ею ФУНКЦИОНАЛЬНУЮ ветку. Это немного пугает ….
Должен ли я просто сделать git push --force --set-upstream origin/FEATURE
?
Спасибо, Жак
Ответ №1:
Если вы просто хотите перенести свою перебазированную FEATURE
ветку на удаленный сервер, используйте:
git push --force origin FEATURE
Если вместо этого вы хотите перезаписать FEATURE
ветку какой-либо другой перебазированной веткой, called FEATURE_OTHER
, затем используйте:
git checkout FEATURE
git reset --hard FEATURE_OTHER
git push --force origin FEATURE
Комментарии:
1. На самом деле, я понимаю, что, возможно, я ошибся: я создал ветку из FEATURE top (FEATURE_REBASED) и перебазировал эту ветку. Но я намерен каким-то образом заменить «ФУНКЦИЮ» на нее? Верна ли моя стратегия? Должен ли я сделать в этом случае git push —force —set-upstream origin / FEATURE ?
2. Теперь я очень смущен (возможно, даже больше, чем вы) тем, что вы на самом деле здесь сделали. Если вы хотите «заменить»
FEATURE
какой-либо другой веткой с перебазированной версией, просто используйте мой второй вариант и выполните полный сбросFEATURE
в какую-нибудь другую ветку.3. хммм.. вы отредактировали свой ответ, не так ли? Я думаю, это в значительной степени отвечает тому, что я хотел сделать (на самом деле, заменив ветвь ФУНКЦИЙ на FEATURE_REBASED ). Я стараюсь быть здесь особенно осторожным, поскольку обратного пути нет… и от этого зависит много кода