Какой самый простой способ клонировать пустой, * bare * git репозиторий?

Я только что закончил поиск результатов поиска Google, содержащих все рассылки электронной почты о том, насколько глупым является то, что git не может клонировать пустой репозиторий. Какая-то душа даже представила патч. До тех пор, пока git не будет обновлен, какой самый простой и простой метод клонирования пустого, голого репозитория git?

Идеальное решение будет поддерживать параметр -o, чтобы дать удаленному репо имя, отличное от origin, и оно будет реализовано как простая оболочка script, например, git-clone-empty-repo.

(Почему я хочу это сделать: я установил пустой, пустой репозиторий git в наш NetApp файл, где он будет скопирован, но я хочу работать с клоном на локальном жестком диске и нажимать и тянуть назад и вперед. Другие люди, с которыми я работаю, будут делать то же самое. Я создаю новые репозитории git много, и моя неспособность клонировать пустое репо делает меня сумасшедшим.)


EDIT: поток VonC предполагает, что

$ git-init
$ git-remote add origin server:/pub/git/test.git

эквивалентно клонированию удаленного репо, когда репо пусто. Это не совсем то, что я хочу, потому что я всегда использую параметр -o с git clone; Я называю удаленное репо в зависимости от того, на какой машине он находится или какой-либо другой незабываемый критерий. (У меня слишком много репо, чтобы держать их прямыми, если их все называют origin.)


РЕДАКТИРОВАТЬ. Будет принят следующий ответ: -)

Чтобы клонировать пустой, пустой репо по пути,

  • Храните ~/git/onefile не-голый репозиторий git, содержащий один безобидный файл, например .gitignore. (Альтернативно, создайте такое репо динамически.)
  • (cd ~/git/onefile; git push path master)
  • git clone -o путь имени

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

Если кто-то меня не избивает, я отправлю оболочку script.

Ответы

Ответ 1

Возможно, у вас есть репозиторий git с минимальным количеством файлов в нем:

one: .gitignore с очевидными шаблонами игнорирования в нем.

И затем клонировать этот "почти пустой" репозиторий.
Обратите внимание, что такой "почти пустой" репозиторий ( "почти", поскольку он по-прежнему имеет минимальный рабочий каталог вместе с каталогом .git), может затем "git clone --bare" (как здесь проиллюстрирован), что делает его истинным голым репо (но не "пустым" ).
Это то, что голая репо вы можете:

  • клонировать везде, где вы хотите.
  • или (что более важно) нажать (поскольку это голое репо)

У вас есть этот поток хорошее резюме "по-другому" (которое я здесь для справки).

$ git-init
$ git-remote add origin server:/pub/git/test.git

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

На что Юнио С Хамано ответил:

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

Следующим шагом будет подготовка вашего содержимого в другом месте. Что будет вашим частным рабочим местом, то есть местом, где вы обычно работают). Вы выходите из своего личного рабочего места в этот издательский репозиторий.
Ваше рабочее место изначальная фиксация должна произойти, поскольку вы являетесь одним из который начинает проект.

Обратите внимание, что частное рабочее место не обязательно должно быть клоном от пустой. Это на самом деле назад. Твоя работа начался с вашего личного рабочего места на публикуемый.

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