Обновите устаревшую ветку против мастера в репозитории Git

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

Как я могу довести или обновить эту устаревшую ветвь до того же состояния, что и главная ветка?

Ответ 1

Обновите главную ветвь, которую вам нужно сделать независимо.

Тогда один из:

  • Восстановите ветвь старой ветки. Решите конфликты слияния во время rebase, и результат будет обновленной ветвью, которая будет слияния чистой с хозяином.

  • Объедините свою ветку в мастер и разрешите конфликты слияния.

  • Объедините мастер в свою ветку и разрешите конфликты слияния. Затем слияние с вашей веткой в ​​мастер должно быть чистым.

Ни один из них не лучше другого, у них просто разные шаблоны компромиссов.

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

Чтобы восстановить и сохранить ветку, вы должны:

git checkout <branch> && git rebase <target>

В вашем случае проверьте прежнюю ветку, затем

git rebase master 

чтобы восстановить его с помощью мастера.

Ответ 2

также убедитесь, что вы принудительно нажали один раз после переустановки, иначе он создаст дублируемую копию предыдущих коммитов в ветке.