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

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

идеальное решение будет поддерживать -o возможность дать удаленному РЕПО имя, отличное от origin, и он будет реализован как простой сценарий оболочки, например,git-clone-empty-repo.

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


редактировать: поток VonC предлагает это

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

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


редактировать: следующий ответ будет отмечен как принятый: -)

клонировать пустой, голый РЕПО на путь,

  1. хранить в ~/git/onefile не-голое РЕПО git, содержащее один безобидный файл, такой как .gitignore. (В качестве альтернативы создайте такое РЕПО динамически.)
  2. (cd ~/git/onefile; git push путь master)
  3. git clone -o имя путь

другими словами, Не пытайтесь клонировать пустое РЕПО, а после его создания нажмите на него простое РЕПО, содержащее один безобидный файл. Тогда он больше не пуст и может быть клонирован.

если кто-то не опередит меня, я опубликую сценарий оболочки.

1 ответов


может быть просто git РЕПО с минимальным количеством файлов в нем:

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

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

  • клонировать везде, где вы хотите.
  • или (что более важно) нажмите (так как это голое РЕПО)

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

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

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

на что Хунио с Хамано ответил:

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

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

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

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