Клонирование репозитория, не делая это источником удаленный

Я клонирую репозиторий мерзавца от компьютера, это будет вытертым.

Действительно ли возможно клонировать репозиторий, не делая исходный репозиторий origin/master? Или сделайте я должен клонировать его и затем удалить удаленное ответвление (который является, покончили git remote rm origin)?

Править: Репозиторий имеет только одно ответвление и никакие теги.

27
задан Andrew Grimm 12 February 2010 в 06:55
поделиться

5 ответов

Это не необходимо сделать исходный репозиторий "исходным" удаленным для клонирования основной ветки.

На новой машине создайте новый репозиторий:

git init foo

Затем перетащите старый репозиторий в новый, не создавая удаленный компьютер:

cd foo
git pull <reference to old repository>

Однако следует отметить, что самый простой способ сохранить данные из репозитория - это просто заархивировать каталог репозитория и переместить файлы на новый компьютер. Это сохранит все без исключения пульты, теги и т. Д.

Как указано ниже, при копировании репозитория будьте осторожны при переходе от файловых систем с учетом регистра (например, Linux, Mac, NTFS) к системам без учета регистра (например, Жир32).

24
ответ дан 28 November 2019 в 05:30
поделиться

У удаленного репо больше веток, чем только главная? Это сложнее, если это так; вам также необходимо сделать локальные копии всех веток, потому что, когда вы удаляете удаленный, все удаленные / исходные ветки исчезнут. (Я только что попробовал!)

Итак, вы можете сделать что-то вроде этого:

git clone <remote_url>
cd <repo>
for b in $(git branch -r | grep -v HEAD | grep -v master);do
    git branch $(basename $b) $b
done
git remote rm origin

Конечно, как сказала Джесс Бауэрс, еще проще просто заархивировать или заархивировать его и переместить файлы, если у вас есть доступ к машина для этого.

Вы также можете просто создать чистый клон:

git clone --bare <remote_url>

, а затем создать из него новые клоны.

2
ответ дан 28 November 2019 в 05:30
поделиться

Общим способом обработки такой пересылки будет git bundle. См. Резервное копирование github repo.

Со второго (нового) рабочего стола:

git bundle create file:///\\oldDesktop/share/myGitRepo --all

создать один локальный файл, из которого вы сможете клонировать локальное git-репо.

Примечание: протокол file:/// будет поддерживать UNC (Universal Naming Convention) путь Windows, при этом остальная часть пути будет использовать '/' вместо '\'. Смотрите Git on a Windows Lan.

3
ответ дан 28 November 2019 в 05:30
поделиться

Я считаю, что вам нужно удалить удаленную ветку.

2
ответ дан 28 November 2019 в 05:30
поделиться

Во-первых, вы можете использовать --origin опцию git clone

--origin , -o

Вместо использования удаленного имени origin для отслеживания вышестоящего репозитория, используйте .

Во-вторых, вы можете использовать git remote add для добавления репозитория для выборки из существующего репозитория (так вы можете использовать git init, затем git remote add <имя> ).


Если вы хотите создать зеркало репозитория, в котором refs/heads/* переходит в refs/heads/* в клоне, вы можете init репозиторий, установить соответствующий refspec, а затем fetch...

Или вы можете использовать git clone --mirror, что должно ответить на текущую версию вопроса OP.

Однако это не сохранит конфигурацию (включая пульты), состояние рабочего дерева, рефлоги и т.д. Для этого вам нужно скопировать репозиторий целиком, как сказал Jess Bowers.

7
ответ дан 28 November 2019 в 05:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: