Я давний пользователь Subversion, который собирается попробовать Git. Я читал об этом и понимаю распределенную природу - я вижу много преимуществ.
Однако мне нравится идея центрального сервера, который может выполнять роль резервных копий, системы записи и т. Д., В то же время используя Git для локального ветвления и совместного использования. Я не занимаюсь проектом с открытым исходным кодом, поэтому я не могу использовать Github (без оплаты), поэтому мой вопрос на самом деле: каков наилучший способ запуска локального сервера git?
Я понимаю, что это может противоречить стандартному шаблону использования Git, но это будет полезно для моего проекта. Любые проблемы, которые я мог упустить из виду, всегда приветствуются.
Спасибо!
Ответы:
Вы можете просто настроить ssh-сервер и запустить там центральный репозиторий. После этого все разработчики просто соглашаются (исходя из политики), чтобы подтолкнуть к серверу, когда они сделали коммиты. Это шаблон использования на моем рабочем месте. Очень CVS и SVN-подобные.
/var/gitroot
например).mkdir project.git && cd project.git && git init --bare --shared=group
).git clone ssh://yourserver.com/var/gitroot/project.git && cd project
)git add README
)git commit -m "Initial import"
),git push origin master
)Это должно настроить вещи для вас.
источник
git init --bare project.git
?Gitorious - это веб-интерфейс с открытым исходным кодом для git, который вы можете запустить на своем собственном сервере, так же, как github:
http://getgitorious.com/
Обновить:
http://gitlab.org/ теперь является еще одной альтернативой.
Обновление 2:
Gitorious теперь присоединился к GitLab
источник
Попробуй GitLab
Лучший инструмент Git GUI, который я когда-либо использовал. Это очень похоже на GitHub.
Это программное обеспечение с открытым исходным кодом (лицензия MIT) и является наиболее установленным программным обеспечением для управления git с более чем 25 000 установок. Он имеет ежемесячные выпуски и активное сообщество с более чем 375 участников. Вы можете иметь неограниченное количество частных, внутренних и общедоступных репозиториев на своем собственном сервере. Это приложение Ruby on Rails, которое работает на большинстве платформ Unix.
источник
Если вы не возражаете против использования командной строки, gitolite - это абсолютное удовольствие при работе в корпоративной среде, где вам нужно установить разные права доступа в разных репозиториях. Это своего рода более новая версия Gitosis, упомянутая @Chris.
Вот резюме с сайта автора:
У него достаточно обширный набор функций, но мне очень нравится то, что ежедневное редактирование конфигурации выполняется через специальный репозиторий git. То есть добавление пользователя просто
А когда нужно просмотреть код через браузер, gitolite поддерживает «синхронизацию» конфигурации с gitweb. Или, если вам нравится cgit , который является очень хорошим веб-интерфейсом для git, написанного на C, лучше, тогда вы должны посмотреть на это с практическими рекомендациями .
источник
Вы могли бы рассмотреть Gitblit , интегрированный, чистый Java Git-сервер с открытым исходным кодом, средство просмотра и менеджер репозитория для небольших рабочих групп.
источник
Браузер Bare Bones
из мерзавца scm book
объединить его с чем-то вроде подхода, описанного здесь для распределенной разработки (благодарность датагроку за хорошо описанную концепцию)
Запустите одноразовый git-сервер из любого локального хранилища.
Я уже написал в твиттере, но подумал, что это может использовать какое-то расширение:
Допустим, вы используете рабочий процесс git, который включает в себя работу с основным «официальным» репозиторием, в который вы извлекаете и переносите свои изменения. Я уверен, что многие компании делают это, так же как и многие пользователи Git-хостинга, такие как Github.
Скажем, этот сервер, или Github, немного отключается.
В конце концов, не беспокойтесь, одна из причин, по которой вы используете git, заключается в том, что у вас есть копия всей истории проекта в вашем локальном клоне.
Вы можете продолжать кодирование и фиксацию, ожидая, пока операционная команда вернет сервер к работе. Примечание для себя: купить пончики для оперативной команды.
Но что, если во время этого простоя вы захотите сотрудничать с другим человеком, который не может быть экспертом по git, в том же хранилище?
Или вместо простоя, что если вы и ваш соавтор находитесь в поле, и по какой-то причине у вас нет возможности подключить VPN к официальному репо?
Или что, если вы и ваш соавтор вносите кучу экспериментальных изменений, и даже если у вас есть доступ, вы не хотите помещать свой незаконченный беспорядок в официальный центральный репозиторий? (Даже не как ветви функций.) Может быть, вы находитесь в процессе очистки катастрофической перебазировки или слияния, и ветви повсюду.
Что ж, git, как вы, наверное, знаете, является «распределенной» системой контроля версий .
Даже если вы можете использовать центральный «официальный» репозиторий git в своем рабочем процессе, у вас все еще есть возможность использовать git в одноранговой манере, где вы и ваш соавтор просто создаете и делитесь коммитами друг с другом, а центральный Сервер даже не должен знать.
Итак, как вы получаете свои ветви и фиксируете их, или наоборот?
Возможно, вы можете подумать и о других методах. Но есть очень простой способ: если вы видите друг друга в сети, вы можете запустить одноразовый git-сервер, который они могут использовать в качестве своего удаленного, чтобы клонировать, извлекать и извлекать ваши изменения, и убивать его, когда вы сделано с этим.
Инструмент, который позволяет это
git daemon
, имеет множество опций и функциональных возможностей, но с целью включения этого простого одноразового «просто обслуживайте репо, в котором я нахожусь», способ использовать его - создать псевдоним. Мне нравится это называтьgit serve
. Запустить:Использование псевдонима на самом деле крайне важно, потому что псевдонимы git выполняются в базовом каталоге вашего рабочего дерева. Таким образом, путь «.git» всегда будет указывать на правильное место, независимо от того, где вы находитесь в дереве каталогов вашего хранилища.
Используйте свой новый
git serve
как так:git serve
. «Готов грохотать», - сообщит он. Мерзавец плохойgit fetch git://192.168.1.123/
»Вы также можете сказать Джейн,
git clone git://192.168.1.123/ local-repo-name
если у нее еще нет клона хранилища. Или используйтеgit pull git://192.168.1.123/ branchname
для извлечения и объединения сразу, что полезно, если вы работаете вместе над веткой функций.Однако обратите внимание, что вы не должны делать это в враждебных сетях, если вы храните секреты в своем хранилище, потому что нет аутентификации. Он не афиширует свое существование, но любой, у кого есть сканер портов, может найти его, подключиться к нему и клонировать ваше хранилище.
Но это не супер опасно, потому что по умолчанию доступно только для чтения.
git daemon
Внимательно прочитайте справочную страницу, если считаете, что хотите разрешить запись. В случае, если вы хотите получить коммиты вашего соавтора, гораздо безопаснее оставить его только для чтения и попросить вашего соавтора также выполнить эту команду, чтобы вы могли извлечь из них.Тангенциально связанные: на тему одноразовых серверов, если вы хотите временно поделиться кучей статических файлов по HTTP:
python -m SimpleHTTPServer
источник
Если вам нужен хороший, легкий GIT сервер, чем вы должны попробовать GitBlit. Также я использую Gitolite, но это только сервер, с GitBlit вы получаете все в одном, сервер, администратор, репозитории. менеджер ... URL: http://gitblit.com/
источник
https://rhodecode.com - это веб-приложение с открытым исходным кодом для Git & Mercurial, которое может быть очень легко установлено под любой операционной системой (включая установщик).
RhodeCode (новая версия называется RhodeCode Enterprise) добавляет недостающие функции Git, такие как просмотр кода, и, как правило, очень быстро и надежно.
источник
Вы также можете установить Indefero , это GPL-клон GoogleCode, так как он поддерживает как Subversion, так и Git, у вас может быть плавный переход. Я автор Indefero.
источник
Вы даже можете установить GitHub на свой локальный сервер (но не бесплатно):
https://enterprise.github.com/
источник
Возможно, это не самая распространенная настройка git-сервера, но, поиграв с разными макетами, инструментами, зеркалированием и схемами разрешений, я бы сказал, что одной довольно солидной альтернативой для корпоративных репозиториев является Gerrit , что может показаться удивительным, поскольку его больше называют инструмент для проверки кода. Мы начали использовать его в качестве обзора кода, и он постепенно стал нашим основным хранилищем, осуждая g3 / gitolite
Кроме того, он используется в крупных проектах (например, Android, Chrome), поэтому он масштабируется и теперь довольно солидный. Просто дайте своим пользователям разрешение PUSH, если вы хотите разрешить обход части проверки кода.
источник
Для удаленного хостинга Как уже говорили другие пользователи, bitbucket.org предлагает бесплатные частные репозитории, я пользуюсь им без проблем.
Для локальной сети или локальной сети я добавлю этот scm-manager.org (один исполняемый файл, который очень прост в установке, он сделан на Java, поэтому может работать на Linux или Windows). На случай, если вы установите его, это пароли по умолчанию.
источник
Тем временем хостинг-сайт Mercurial Bitbucket также начал предлагать Git-репозитории.
Поэтому, если вам не нужен локальный сервер, просто какое-то центральное место, где вы можете бесплатно разместить частные Git-репозитории, IMO Bitbucket - лучший выбор.
Бесплатно вы получаете неограниченные частные и публичные репозитории Git и Mercurial.
Единственным ограничением является то, что в бесплатном плане не более пяти пользователей могут получить доступ к вашим личным репозиториям (за большее вы должны заплатить).
Смотрите https://bitbucket.org/plans для получения дополнительной информации!
источник
Если вы хотите получать запросы, есть проекты с открытым исходным кодом RhodeCode и GitLab и платный Stash
источник
Если вы просто хотите, чтобы ваш репозиторий находился в центральном месте, это довольно просто с распределенным контролем версий, таким как Git:
вы можете просто поместить свой центральный репозиторий в какую-то общую папку на центральном компьютере, и каждый может клонировать его оттуда.
Если вам нужен «настоящий» сайт на вашем локальном сервере, я знаю сайт хостинга Git http://repo.or.cz .
Кажется, что он имеет меньше возможностей, чем GitHub, но в отличие от GitHub, вы можете получить исходный код и разместить его на своем локальном сервере.
Отказ от ответственности: я только читал о repo.or.cz, я никогда не пробовал сам!
источник
для простых установок вы можете предоставить ssh-доступ к центральному серверу и настроить рабочий каталог каждого пользователя для отправки / извлечения из этого «источника». Это была бы самая простая и распространенная установка для небольших команд.
Вы также можете изучить Gitosis, который дает вам http-сервер и возможность удаленного управления им. Таким образом, вам не нужно предоставлять ssh-доступ и все, что влечет за собой каждый коммиттер.
источник
Чтобы добавить к сказанному Крисом, вы можете использовать gitosis (http://eagain.net/gitweb/?p=gitosis.git), чтобы контролировать, кто действительно может получить доступ к репо.
В зависимости от вашего использования вы также можете использовать хуки (в папке .git / hooks), чтобы ваш код автоматически перетаскивался в файловую систему сервера при загрузке с локального компьютера. Вот популярный скрипт для этого: http://utsl.gen.nz/git/post-update . Это не будет необходимо во всех случаях.
источник
http://repo.or.cz , хотя довольно хорошо, как правило, имеют некоторые проблемы с некоторыми пользователями.
Если вы один из них, я рекомендую вам попробовать http://unfuddle.com, так как вы пришли из подрывной деятельности.
Проверьте " 30 Второй тур ": http://unfuddle.com/about/tour/plans
источник
http://code.google.com/p/luna-tool/ - это приложение scala, которое реализует большинство необходимых мне частей github.
источник