Как скопировать репозиторий git? (без разветвления) - PullRequest
93 голосов
/ 07 июля 2011

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

Я новичок в git, и было бы здорово, если бы кто-то мог помочь мне с этим.

Ответы [ 5 ]

169 голосов
/ 26 мая 2013

См. https://help.github.com/articles/duplicating-a-repository

Короткая версия:

Чтобы создать точный дубликат, вам необходимо выполнить как клонирование без клонирования, так и зеркальное нажатие:

mkdir foo; cd foo 
# move to a scratch dir

git clone --bare https://github.com/exampleuser/old-repository.git
# Make a bare clone of the repository

cd old-repository.git
git push --mirror https://github.com/exampleuser/new-repository.git
# Mirror-push to the new repository

cd ..
rm -rf old-repository.git  
# Remove our temporary local repository

ПРИМЕЧАНИЕ: вышеописанное будет работать нормально с любым удаленным репозиторием git, инструкции не относятся к github

Вышеуказанное создает новую удаленную копию репо.Затем клонируйте его на свою рабочую машину.

18 голосов
/ 26 марта 2015

Вы также можете использовать git-copy .

Установить его с Gem,

gem install git-copy

Затем

git copy https://github.com/exampleuser/old-repository.git \
    https://github.com/exampleuser/new-repository.git
6 голосов
/ 02 мая 2016

Если вы копируете в GitHub, вы можете использовать для этого GitHub Importer .Оригинальный репозиторий может быть даже из других систем контроля версий.

3 голосов
/ 28 сентября 2016

Если вы просто хотите создать новый репозиторий, используя все или большинство файлов из существующего (т.е. в качестве шаблона), я считаю, что самый простой подход - создать новый репозиторий с нужным именем и т. Д.,клонируйте его на рабочий стол, а затем просто добавьте в него нужные вам файлы и папки.

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

0 голосов
/ 17 февраля 2019

Открытый терминал.

Создание чистого клона хранилища.

git clone --bare https://github.com/exampleuser/old-repository.git

Mirror-push to the new repository.

cd old-repository.git

git push --mirror https://github.com/exampleuser/new-repository.git

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...