Подключите 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.