Замена опубликованной ветки

203
gspr

Предположим, что существует вышестоящий проект, который не использует git, и я поддерживаю кодовую базу на основе выпущенных tar-архивов этого проекта. Я поддерживаю ветку git masterи мою ветку myот нее. Я публикую обе ветки в публичном репозитории git. Всякий раз, когда апстрим выпускает новый основной релиз, я создаю новый коммит, masterкоторый идентичен выпущенному архиву. Затем я работаю на слияние глава masterINTO my, и опубликовать обе ветви.

Теперь предположим, что апстрим наконец-то приходит в себя и публикует свой репозиторий git. Я хотел бы иметь свой masterтрек и стать идентичным с апстримом с этого момента истории и далее. Каков рекомендуемый курс действий? Должен ли я просто сделать то, master-2что идентично восходящему потоку, и объединить его myоттуда, отказавшись от старого master?

0

1 ответ на вопрос

1
grawity

В вашем локальном хранилище вы можете:

  • Удалите ветку, используя git branch, а затем (если хотите) создайте новую «основную» ветку.
  • Переименуйте ветку на что-то другое, используя git branch, затем, при необходимости, создайте новую.
  • Непосредственно перенаправьте ветку 'master' на любой коммит, который вы хотите, используя git branchили git reset.

Для удаленного хранилища вы можете:

  • Удалить ветку (нажать на удаление), используя git push --delete.
  • Замените ветку любым коммитом, который хотите, используя git push --force.

Если вы сделаете это с удаленным репозиторием, который используется другими людьми или системами:

  • Если вы используете другое имя, другие люди могут легко создать git checkoutновую ветвь, но они могут не заметить изменения и запутаться в том, почему в «основной» ветке внезапно возникла нулевая активность.
  • Если вместо этого вы поместите другую историю в одну и ту же ветку 'master', все заметят это - но в зависимости от gitверсии и команды обновления, которую они использовали, она либо прекратит работу с сообщением об ошибке (требующим некоторой ручной очистки), либо попытается объединить оба истории (требующие дополнительной ручной очистки).

Похожие вопросы