2013-11-07 10 views
12

Я поклонник использования GitHub в качестве моего репозитория файлов проекта. Но это меня больше интересует, если я могу создать репозиторий на этом компьютере по другому пути к каталогу. Затем клонирование, создающее репозиторий в новом рабочем каталоге.Настройка локального хранилища git

Я планировал сделать GitHubлокально. Я искал об этом, и многие возвращаются, что я должен использовать gitolite и многие другие. Проблема в том, что я использую Windows, и я хочу сделать все шаги с помощью командной строки.

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


УВЯЗКА ТЕРМИНАЛ для Windows, хост

Я создал каталог репозитория pathed в Users\username\GIT\project.git. Я пытаюсь связать свой терминал с помощью командной строки git clone file://{IPv4 server address}/Users/username/GIT/project.git возвращает

fatal: '/{IPv4 server address}/Users/username/GIT/project.git' does not appear to be a git repository 
fatal: The remote end hung up unexpectedly 

Как я могу решить эту проблему? Я мой хост работает в Windows 7, и мой соединительный терминал (ы) будет использовать Ubuntu 12.04 LTS и MacOS Mavericks.


UPDATE TRACK

  1. Обновленный мой вопрос тела. Я не знаю, какие шаги я должен соблюдать.
  2. Введено СВЯЗЬ С ТЕРМИНАЛОМ на Windows Host вопрос для обмена репозиториями по локальной сети.
+0

Я предлагаю вам вместо этого использовать гитолит. Вероятно, вы столкнетесь с проблемами с ключами и разрешениями ssh. –

+0

вы проверили http://git-scm.com/book/en/Git-on-the-Server-Setting-Up-the-Server? – asifrc

+0

@asifrc это применимо, если сервер Windows? –

ответ

11

Может быть, вы задаете простой способ создания Git репозиторий и локальный клон?

  1. Создать GIT репозиторий с помощью git init --bare
  2. Clone из другого места, используя git clone --local /path/your/local/repo/

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

Но, простой способ просто работать, не лучший или подходящий способ. на GitHub нет запроса на тягу, след трека, функция управления привилегиями. Для управления git commit или другой сложной работы вам нужна система управления, , например, gitolite, gerrit, некоторые могут не работать в системе Windows.

Если вам нужно только бесплатное частное репо, вы используете битбакет.

Клон из доли окон:

git clone file:////{IPv4 server address}/share_name/path_to_your_.git_dir 

На хост-компьютере, вы должны делиться реж репо с 'имя_общего_каталога', например: родительский дир repo.git

См:

+0

Прямо на точке. Тем не менее, я не могу следовать за вами о совместном использовании Windows, как и любые другие ответы. В любом случае (я знаю, что это может показаться не по теме) локальным Bitbucket или GitHub для управления git (JIRA и т. Д.)? –

+0

Кажется, вы не очень хорошо знакомы с git, поэтому я не предлагаю вам создавать локальную систему git mangement, такую ​​как JIRA. Pure git может создавать локальное репо и делать локальную локальную локализацию, совместное использование Windows (ссылка с буквой драйвера, например g: \ some \ dir) будет работать так же, как и на вашем собственном компьютере. Если вы узнаете больше о git, это будет более простым в выборе. – Fwolf

+0

Если вы знали немного о git (особенно в Windows-платформе), управление локальным репозиторией git может дать вам больше проблем позже, поэтому используйте онлайн-приватную услугу git, возможно, правильный выбор для вас сейчас. – Fwolf

2

Если я прочитал вашу проблему заявление правильно, Вы можете просто клонировать локальный Git репозиторий в другую папку с помощью переключателя --local на команду клоном как этот

git clone --local /git/source_repo/project /home/username/workdir/project 

где

/git/source_repo/project является безопасную копию репо (назовите это вашим личным GitHub, если хотите).

и

/home/username/workdir/project ваша рабочая папка. Это может быть любая папка, в которой вы хотите сделать частые совершает

Выключатели пояснил:

--local

Когда хранилище для клонирования на локальной машине, этот флаг обходит обычный транспортный механизм «git aware» и клонирует репозиторий, создавая копию HEAD и все в каталогах объектов и ссылок. Файлы в каталоге .git/objects/жестко привязаны для экономии места, когда это возможно.

Если репозиторий указан как локальный путь (например,/path/to/repo), это значение по умолчанию, а -local по существу не работает. Если репозиторий указан как URL-адрес, то этот флаг игнорируется (и мы никогда не используем локальные оптимизации). Задание --no-local переопределяет значение по умолчанию, когда задано/path/to/repo, вместо этого используется обычный git-транспорт.

Для принудительного копирования вместо жесткой привязки (что может быть желательно, если вы пытаетесь создать резервную копию своего репозитория), но все же избегайте обычного механизма транспорта «git aware», можно использовать -no-hardlinks ,

--no- жесткие ссылки

Оптимизация процесса клонирования из хранилища на локальной файловой системе путем копирования файлов в .git/объектов каталога.

см documentation для более подробной информации

Update 1:

Для настройки сервера Git на Windows, вы можете попробовать это commercial (с открытым исходным кодом) программного обеспечения под названием GitStack.

Полезные GitStack ресурсы:

  1. GitStack Installation Instructions
  2. Ссылка на исходный код GitStack on Github
+0

Под каким каталогом следует ввести эту команду? –

+0

, если вы используете полные пути как для источника, так и для адресата, не имеет значения, где вы выполняете команду. Я добавил больше описания ответа выше. – Litmus

+0

Хорошо. Но как насчет связи моих терминалов с созданным репозиторием через SSH или другие протоколы. –

1

Для создания локального голую хранилища, команда на самом деле довольно проста:

git clone --bare my_project my_project.git 
Initialized empty Git repository in /my/projects/my_project.git/ 

Пока вы используете эти loc (скажем, с USB-накопителя или что-то еще), это действительно все. Вы просто указываете свои команды на этом репо, клонируете, толкаете, тянете и т. Д. Хотя, можно спросить, почему вы хотите это сделать.

Эти инструкции для получения настройки на сервере, но я нашел эти инструкции очень полезны для создания локальных сделок РЕПО, а также: http://git-scm.com/book/en/Git-on-the-Server-Getting-Git-on-a-Server

+0

Под каким каталогом я должен введите эту команду? –

+0

Извините за путаницу, это будет от родителя, где работает ваша рабочая копия репо. Итак, если у меня есть '/ projects/myproject', и я хочу создать« официальный »голый репозиторий, я бы« cd/projects », а затем введите« git clone --bare myproject/location/for/bare/myproject ». git'. Git будет искать каталог '.git' в каталоге, указанном в первом аргументе. –

+0

Отлично, как бот связывает мои терминалы с созданным репозиторием? –

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