Я клонирую репозиторий мерзавца от компьютера, это будет вытертым.
Действительно ли возможно клонировать репозиторий, не делая исходный репозиторий origin/master
? Или сделайте я должен клонировать его и затем удалить удаленное ответвление (который является, покончили git remote rm origin
)?
Править: Репозиторий имеет только одно ответвление и никакие теги.
Это не необходимо сделать исходный репозиторий "исходным" удаленным для клонирования основной ветки.
На новой машине создайте новый репозиторий:
git init foo
Затем перетащите старый репозиторий в новый, не создавая удаленный компьютер:
cd foo
git pull <reference to old repository>
Однако следует отметить, что самый простой способ сохранить данные из репозитория - это просто заархивировать каталог репозитория и переместить файлы на новый компьютер. Это сохранит все без исключения пульты, теги и т. Д.
Как указано ниже, при копировании репозитория будьте осторожны при переходе от файловых систем с учетом регистра (например, Linux, Mac, NTFS) к системам без учета регистра (например, Жир32).
У удаленного репо больше веток, чем только главная? Это сложнее, если это так; вам также необходимо сделать локальные копии всех веток, потому что, когда вы удаляете удаленный, все удаленные / исходные ветки исчезнут. (Я только что попробовал!)
Итак, вы можете сделать что-то вроде этого:
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>
, а затем создать из него новые клоны.
Общим способом обработки такой пересылки будет git bundle
. См. Резервное копирование github repo.
Со второго (нового) рабочего стола:
git bundle create file:///\\oldDesktop/share/myGitRepo --all
создать один локальный файл, из которого вы сможете клонировать локальное git-репо.
Примечание: протокол file:///
будет поддерживать UNC (Universal Naming Convention) путь Windows, при этом остальная часть пути будет использовать '/
' вместо '\
'. Смотрите Git on a Windows Lan.
Во-первых, вы можете использовать --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.