Подключите git историй после вырезать

Мои два репозитория из одного проекта. Я делаю историю после коммита 3 и работать сейчас только с Repo ProjectnameWorking.

git log репо "ProjectnameArchiv":

30114b2afac5d1c5a968441151ee8f91fc015ff3 4
9aa472d04501a14b5b704fde32445461f99f539a 3
1d0e5abe5daf60c0d86819938ba1aefd44b87ff5 2
766f4880e8ccf61bdc718dfae62466f800ae8119 1

git log репо "ProjectnameWorking":

2932c4b8ea681f0a97bf151ccc46d2044e8e5a50 5
27ec1a4618f1bf0025b8ba83fd69c2607cdf78d4 4

Есть ли способ соединить более поздние истории и файлы проектов с одним?

git log репо "Имя проекта"

2932c4b8ea681f0a97bf151ccc46d2044e8e5a50 5
27ec1a4618f1bf0025b8ba83fd69c2607cdf78d4 4
9aa472d04501a14b5b704fde32445461f99f539a 3
1d0e5abe5daf60c0d86819938ba1aefd44b87ff5 2
766f4880e8ccf61bdc718dfae62466f800ae8119 1

Редактировать:

  • Совершите 4 в репо "ProjectnameArchiv" - получите новый хэш

1 ответ

Решение

Да, это возможно, но SHA одного из проектов изменится:

  • создать общий удаленный репозиторий:

    /some/other/path>git init . --bare
    
  • создать филиал в ProjectnameArchiv в 9aa472d04501a14b5b704fde32445461f99f539a и нажмите его на пульте:

    ProjectnameArchiv>git branch merge-base 9aa472d04501a14b5b704fde32445461f99f539a
    ProjectnameArchiv>git remote add origin file:///some/other/path
    ProjectnameArchiv>git push --all
    
  • сделайте то же самое в другом репо, но получите вместо push:

    ProjectnameWorking>git branch working-top 2932c4b8ea681f0a97bf151ccc46d2044e8e5a50
    ProjectnameWorking>git remote add origin file:///some/other/path
    ProjectnameWorking>git fetch origing
    
  • cherry-pick первый рабочий коммит в ветку архива

    ProjectnameWorking>git checkout -b archive origin/merge-base
    ProjectnameWorking>gitcherry-pick 9aa472d04501a14b5b704fde32445461f99f539a
    
  • Если у вас есть только несколько коммитов, вы можете продолжить выбор вишни для большего числа, перебрасывая оставшуюся часть рабочей ветви в ветку архива быстрее:

    ProjectnameWorking>git rebase --onto archive 9aa472d04501a14b5b704fde32445461f99f539a working-top
    

    Вы могли бы добавить гиты -i возможность проверить, что он делает, до его запуска и прервать процесс, если что-то пошло не так.

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

Другие вопросы по тегам