git перебазирует очень старую ветку

#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 ). Я стараюсь быть здесь особенно осторожным, поскольку обратного пути нет… и от этого зависит много кода