Как сохранить историю коммитов Git при рефакторинге существующего проекта в новый созданный vue-cli? - PullRequest
0 голосов
/ 11 января 2019

Итак, мой проект создан с Vue и vue-cli , который я хочу реорганизовать. Я хочу реализовать Typescript и рекомендовать начать новый проект с Vue CLI 3 .

Вот репо моего проекта, если интересно: https://github.com/kamatheuska/portafolio-client

Моя проблема в том, что я потеряю историю коммитов моего проекта, если начну новый. Я хочу сохранить как можно больше своей истории и метаданных git commit.

Первое, что я бы сделал, это:

vue create refactored-project

и затем установите его для сборки с Typescript . Теперь, как я могу переместить Git commit history или аналогичный из старого проекта в этот, я понятия не имею. Спасибо за помощь!

1 Ответ

0 голосов
/ 11 января 2019

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

Однако я предполагаю, что вы захотите сохранить большую часть бизнес-логики и переместить / скопировать файлы в новые места в структуре и захотите сохранить историю, чтобы помочь выяснить, почему что-то было сделано определенным образом.

Самое простое решение - переместить все текущих файлов в одну папку "old" и запустить новый проект в том же репо. Поскольку вы реализуете новую функциональность, удалите старые файлы с измененными параметрами, не пытайтесь одновременно поддерживать оба проекта активными, для этого предназначены ветки и старые коммиты. Если вы внимательно относитесь к этому, вы получите «индикатор выполнения» того, насколько вы близки к завершению рефакторинга: когда «старая» папка пуста, все реализовано в новой структуре.

Когда вы копируете большие части файлов, git делает разумную работу по обнаружению этого и предоставлению последовательной истории кода.


Существует более сложное решение: git позволяет вам иметь несколько корней источника. Это в основном для слияния двух существующих проектов, хотя и не совсем применимо здесь.

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