Я только что закончил просматривать результаты поиска Google, которые содержат все сообщения о том, насколько глупо, что git не может клонировать пустой репозиторий. Какая-то добрая душа даже представила патч. Пока git не обновлен, какой самый простой и простой способ клонировать пустой, голый репозиторий git?
Идеальное решение будет поддерживать опцию -o
для присвоения удаленному репо имени, отличного от origin
, и будет реализовано в виде простого сценария оболочки, например, git-clone-empty-repo
.
(Почему я хочу это сделать: я установил пустое пустое git-репо на нашем NetApp filer, где он будет зарезервирован, но я хочу работать с клоном на моем локальном жестком диске и извлекать файлы туда и обратно. Другие люди, с которыми я работаю, будут делать то же самое. Я часто создаю новые репозитории git, и моя неспособность клонировать пустое репо сводит меня с ума.)
РЕДАКТИРОВАТЬ : поток VonC предполагает, что
$ git-init
$ git-remote add origin server:/pub/git/test.git
эквивалентно клонированию удаленного репо, когда репо пусто. Это не совсем то, что я хочу, потому что я всегда использую опцию -o
с git clone; Я называю удаленное репо в зависимости от того, на какой машине он находится, или по какому-то другому критерию. (У меня слишком много репо, чтобы держать их прямо, если они все называются origin
.)
РЕДАКТИРОВАТЬ : Следующий ответ будет помечен как принятый: -)
Чтобы клонировать пустой репозиторий на path ,
- Храните в
~/git/onefile
непрозрачное git-репо, содержащее один безобидный файл, такой как .gitignore
. (Либо создайте такое хранилище динамически.)
(cd ~/git/onefile; git push
путь master)
git clone -o
имя путь
Другими словами, не пытайтесь клонировать пустое хранилище, а, скорее, создав его, добавьте к нему простое хранилище, содержащее один безобидный файл. Тогда он больше не пуст и может быть клонирован.
Если кто-то меня не побьет, я выложу скрипт оболочки.