2009-08-25 4 views
5

У меня есть проект, над которым я работал над вызываемой системой, которую я создал как репо. Я потянул и нажал на проект (system.git).Как объединить существующий репозиторий git в пустой и сохранить историю?

Теперь я хочу опубликовать его на сайте, таком как github. Каков наилучший способ взять мой текущий проект и подтолкнуть его к новому проекту github, не потеряв мою историю?

Спасибо!

ответ

9

Создать репо на Github.

Тогда вы будете установить происхождение этого проекта

git remote add origin [git hub url] 

Затем сделать:

git push origin [branch name] 

И вы будете толкать локальный репозиторий для Github (со всей историей и т.д.)

+1

Спасибо, что начали ghills. Сначала мне нужно было сделать «git remote rm origin», а затем я смог его изменить. Затем мне пришлось сделать «главный источник происхождения git pull», чтобы объединить главную ветвь. Тогда я мог бы сделать «главный источник генерации git». Потрясающие! Опять же, спасибо! – Dooltaz

+1

Вы могли бы на самом деле заставить его нажать «git push [git hub url] + refs/heads/*: refs/heads/*' –

+0

Или «git push origin -all -tags», чтобы нажать все ветки и теги , –

2

Это действительно ответ на комментарий хакера по поводу ответа от ghills, но он немного поработал, и SO не понравилось, что я добавляю кучу кода в комментарий.

... или вы можете использовать другое имя, кроме «происхождение». Например, у меня есть репозиторий, в котором моя «ведущая» ветвь нажимает на один репозиторий github, а ветвь «взлома» переходит в другую.

В .git/конфигурации, у меня есть это:

[remote "origin"] 
    fetch = +refs/heads/*:refs/remotes/origin/* 
    url = [email protected]:xiongchiamiov/fourU.git 
[branch "hacking"] 
    remote = origin 
    merge = refs/heads/hacking 
[remote "main"] 
    url = [email protected]:xyztextbooks/fourU.git 
    fetch = +refs/heads/*:refs/remotes/main/* 
[branch "master"] 
    remote = main 
    merge = refs/heads/master 
0

This также полезен для управления отслеживанием удаленных филиалов.