2015-11-04 2 views
0

У меня есть две вещи, которые мне нужно сочетать:Заменить главный филиал со всем местным деревом

  1. существующий репозиторий с историей пересмотра двух лет. Для сложными причинами, не зависящими от моей части управления этой ветвью, являются устаревшие.
  2. Дерево папок, содержащее наш новейший код 'Live'.

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

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

Я думаю, что лучший курс действий будет заключаться в следующем:

  1. Clone новая версия мастер-отрасли.
  2. Удалите все, что я только что клонировал, кроме файлов .git и .gitignore .
  3. Оставьте мой новый код в этой папке.
  4. Зафиксируйте и решительно нажмите все.

Но я хотел бы дважды проверить, прежде чем идти вперед и делать это. Мой вопрос к гуру GIT заключается в том, что это сработает? Или есть проблемы , которые вернутся, чтобы преследовать меня позже? Есть ли лучший или более простой способ?

У меня есть осложнение, поскольку у меня есть другие ветви, на которых действует . Их изменения в какой-то момент должны быть объединены обратно в мастер . Могу ли я ожидать массу проблем, когда наступит этот момент?

Большое спасибо!

ответ

1

Ваш план будет работать. Единственные проблемы, которые я вижу, это когда вы объедините некоторые другие ветви, которые будут модифицировать старые файлы, которые вы удалили в главном. Для этих конфликтов вам нужно будет решить, будет ли использовать версию ветвления или удалить их.

+0

Отлично! Спасибо за ответ! –

+0

@BenHillier Добро пожаловать. – dan

Смежные вопросы