2010-02-09 2 views
128

У меня есть ветка, которую я хотел бы переместить в отдельный репозиторий Git, и в идеале сохранить историю этой ветки в этом процессе. До сих пор я смотрел git filter-branch, но я не могу понять, может ли он делать то, что я хочу делать.Как переместить ветку Git в свой собственный репозиторий?

Как извлечь ветку Git в свой собственный репозиторий?

ответ

207

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

например.

git push url://to/new/repository.git branch-to-move:new-branch-name 

Для нового репозитория имя новой ветви обычно является основным.

Создание нового, пустого хранилища может быть выполнено с помощью git init.

+12

На всякий случай, если кому-то интересно, я заменил URL-адресом пути к каталогу репозитория Git, и это сработало отлично. – Aupajo

+41

Вы также можете назвать имя филиала в новом репозитории: 'git push url: //to/new/repository.git branch-to-move: new-branch-name' –

+4

Комментарий от Yves выше, иначе у вас не будет хозяина, и процесс клонирования завершится «warning: remote HEAD» относится к несуществующему ref, неспособному проверить. ». Если уже на этом этапе, просто зайдите с 'git checkout -b branch-to-move', и вы в безопасности, или просто перейдите с' git checkout -b master', чтобы иметь свою главную ветку :) –

12

Это позволит сохранить историю всех ветвей, но сделать вашу точку копирования в одной отрасли, в частности:

git clone -b newbranch CurrentRepo NewRepo 

Это не «шаг» ничего, просто делает копию.

+2

Стоит отметить, что 'clone -b' является новым. Он требует git> = 1.6.5 (выпущен в октябре 2009 г.). –

+0

Мне не удалось заставить это работать, но это было до того, как я увидел сообщение от Чарльза Бейли. – Aupajo

Смежные вопросы