Оновіть застарілу гілку проти майстра в Gpo ​​repo


123

У мене є сховище Git, яке має філію (локальну та віддалену), яка застаріла. Я хотів би ознайомити цю гілку з головною галуззю, але я не знаю, як це зробити. Можливо, також буде багато конфліктів злиття.

Як я можу привести або оновити цю застарілу гілку до такого ж стану, як і головна гілка?


1
якщо ви приїхали сюди, щоб дізнатися, як оновити застарілу гілку проти майстра в Git repo, якщо ви не зробили будь-яких змін у місцевій гілці, тоді просто зробіть "git pull"
пошарпаний

Відповіді:


152

Оновіть головну гілку, що вам потрібно зробити незалежно.

Потім один із:

  1. Розмістіть стару гілку на головній гілці. Вирішіть конфлікти злиття під час перезавантаження, і результатом буде сучасна гілка, яка чітко зливається з головним.

  2. Об’єднайте свою гілку в головну і вирішіть конфлікти злиття.

  3. Об’єднайте майстра у свою філію та вирішіть конфлікти злиття. Тоді злиття від вашої гілки до господаря повинно бути чистим.

Жоден з них не кращий за інші, вони просто мають різні схеми компромісу.

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

Для відновлення та збереження гілки ви:

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

Тоді перевірте стару гілку

git rebase master 

щоб відновити його проти господаря.


1
@Andrew: git rebase:)
CharlesB

1
git checkout $branch && git rebase $target- у вашому випадку перевірте стару гілку, git rebase masterщоб відновити її проти господаря.
Даніель Піттман

3
Ваш репо публічний? Чи добре робити перезавантаження, якщо воно публічне?
event_jr

4
Хороша порада при використанні відновлення даних у віддалених гілках: виконайте це відновлення віддаленої гілки проти головної гілки лише тоді, коли хто не натискає на цю віддалену гілку.
Дерік

Після того, як буде виконано перезавантаження, вам потрібно натиснути зміни за допомогою -fпараметра. Коли ви переписуєте історію, потрібен сильний поштовх.
Opster Elasticsearch Ninja
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.