Вы можете получить одно в другое :
$ cd project1
$ git config remote.project2.url /path/to/project2
$ git config remote.project2.fetch 'refs/heads/*:refs/project2/*'
$ git fetch project
Это даст вам две (или более) ветки, содержащие историю проекта1 и проекта2. Они все еще полностью независимы, просто используйте одно и то же хранилище объектов.
Тогда (не проверено), вы можете использовать графт-файл (.git/info/grafts
), в котором вы можете перезаписать родительский элемент коммита (как первый из project2 с родительским последним из project1)
Как говорит Дастин в комментариях, для того, чтобы «сделать его постоянным», необходимо выполнить ребазинг путем воспроизведения коммитов project2 на project1.
У вас есть еще одна иллюстрация в этой записи в блоге " Использование Git в проекте (развлечение) * ", особенно в разделе "Как заводить друзей и влиять на людей". Опять же:
git checkout two_point_ooh
git remote add strelau git://gitorious.org/ruby-on-rails-tmbundle/mainline.git
git checkout -b strelau/two_point_ooh
git pull strelau two_point_ooh
аналогичный процесс, но для разветвленных репозиториев (что не совсем так)