2013-07-26 3 views
1

Pro Git book утверждает, что мне нужно сначала создать репо внутри существующего каталога, а затем клонировать его как «голый». Я прочитал this article о том, зачем использовать «голый» репозиторий, и мне кажется, что мне нужно рассматривать его как «происхождение», и его следует использовать, чтобы тянуть и нажимать. Я не понимаю, почему мне нужно сначала создать репозиторий, а затем клонировать его как «голый»? Почему я не могу создать «голый» репо intiatilly, а затем зафиксировать файлы из каталога?создать «голый» git repo без клонирования

А что, если я удалю каталог, из которого было создано «голого» репо? Будет ли это влиять на «голый» репозиторий?

ответ

2

Вы можете создать голую respository достаточно легко:

$ git init --bare <directory> 

И если вы клонировали его, вы можете удалить исходный репозиторий раз клонировали. Удаленный в клонированном репозитории origin будет недоступен, поэтому вы, вероятно, захотите его впоследствии удалить.

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

+0

Спасибо!Я понял, что репозиторий, который вы клонируете, становится «источником» в удаленном списке git :) –

+0

'И если вы клонировали его, вы можете удалить исходный репозиторий после клонирования. '- Я думаю, это может быть хорошим дополнением к первому вариант, указанный в сообщении @Nevik Rehnel –

+0

Вы можете, но не обязательно, @Maximus. Вы можете использовать начальное репо как обычный рабочий клон. –

2

Это может быть небольшое непонимание стартовой ситуации.

Вы можете создать голый репо, как любой другой, используя git init --bare. Это создаст репозиторий без какого-либо содержимого.

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

Если вы хотите поместить существующие файлы в голый репо, у вас есть два способа идти о том, что:

  1. Создайте обычный репозиторий и зафиксировать ваши файлы на него, а затем клонировать его в голый репо (как описано в вашем вопросе)
  2. Создайте голый репо, клонируйте его к нормальному репо, перенесите свои файлы в обычное репо, а затем нажмите на голый репо.

Оставляя добавление пульта дистанционного управления к исходному негладному в варианте 1., вы можете видеть, что вариант 2. имеет больше шагов.

+0

Хорошо, спасибо! Наверное, это недоразумение :). Наверное, я все еще теряюсь, почему мне нужно гореть репо. Есть ли хорошая статья в Интернете или вопрос о stackoverflow, который объясняет это? –

+0

http://bare-vs-nonbare.gitrecipes.de/ может помочь –

+0

Спасибо! Думаю, теперь я понял это. Мне не нужно начинать с обычного репо, если я собираюсь использовать «голые» репо только для операций push/pull, и фактические фиксации будут сделаны в локальных не-голых репозиториях. –

2

Почему я не могу создать 'bare' repo intiatilly, а затем зафиксировать файлы из каталога ?

Потому что вы не можете зафиксировать файлы в голое репо.

Обычно, если вы создаете хранилище (с помощью git init или git clone), мерзавец создаст хранилище структуру (.git SUBDIR) и рабочее дерево, то есть каталог, в котором текущие совершающие-х файлы проверены.

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

+0

Спасибо за разъяснения! –

Смежные вопросы