Слияние веток в GIT после миграции из TFS - PullRequest
2 голосов
/ 01 февраля 2020

У нас был TFS-репозиторий с одной веткой «Main». Затем мы разветвляли его на другой, "Main-MERGE". Оба были долгосрочными ветвями, но в некоторых моментах мы сделали несколько слияний. Все работает нормально.

Теперь мы перенесли весь репозиторий в GIT, используя git -tfs. Кажется, все в порядке, мы работаем над обеими ветвями в GIT.

Что ж, теперь мы решили объединить «Main-MERGE» -> «Main», чтобы иметь только одну «главную» ветку. Но это кажется невозможным. При использовании слияния нет конфликта, и результат не соответствует ожидаемому. Кажется, это больше переписать, чем объединить.

Означает ли это, что нет способа объединить файлы, как в TFS, когда ветви переносятся в TFS? Кажется, все хорошо в истории. Мигрированные коммиты, похоже, связаны с родителями. Как найти проблему и объединить ветки?

1 Ответ

1 голос
/ 03 февраля 2020

Обновление:

Вы должны иметь возможность объединять коммиты, сделанные после обычной миграции. Это как если бы вы работали над новым репо git. Для других старых коммитов, перенесенных из TFS, вы сможете просмотреть их историю. Но вы не смогли объединить один коммит, они связались вместе как новый коммит в вашем Azure DevOps репо.

Операция наконец вернула изменения в TFS, затем слилась и мигрировала обратно в GIT. Потребовалось некоторое время, но все в порядке.


Существуют некоторые различия для слияния в TFV C и Git:

  • Слияния в TFV C происходят на уровень файла, а не на весь репозиторий. Вы можете объединить только подмножество измененных файлов из одной ветви в другую, а затем объединить оставшиеся измененные файлы в последующем наборе изменений.
  • В Git объединение влияет на весь репозиторий, и вы не можете видеть оба набора отдельных изменений как слияния.

При планировании миграции вы должны выбрать новую стратегию ветвления для Git.

Не представляете, почему вы не можете выполнить слияние преформ в Git после вашей миграции. Предложите вам дважды проверить весь процесс, если есть какие-то пропущенные или нет Вы можете обратиться к этому блогу с пошаговым порталом: Миграция с TFV C на Git (для больших репозиториев)

Но в вашей ситуации, так как вы собираетесь объединить эти две ветви и имеют только одну "главную" ветку в вашем Git Репо.

Лучший способ - выполнить слияние до перехода с TFV C на Git. Сначала вы можете иметь единственную «основную» ветку в TFV C. После этого вы можете создать ветку на основе перенастроенной главной ветки в Git Репо.

Кроме того, поскольку таким образом переносится только одна ветка. Миграция только основной ветви поддерживает рабочий процесс на основе topi c. Вы также можете использовать TFV C Инструмент импорта .

Подробнее о переходе с TFV C на Git, пожалуйста, ознакомьтесь с нашим официальным руководством здесь .

...