Если вы не хотите связываться со всей работой по установке собственного Git-сервера, у вас есть несколько вариантов размещения ваших Git-проектов на внешних специальных хостинг сайтах. Это предоставляет множество преимуществ: на хостинг сайте обычно быстро настроить и запустить проект и нет никакого мониторинга или поддержки сервера. Даже если вы установили и запустили свой собственный внутренний сервер, вы можете захотеть использовать публичный хостинг сайт для вашего открытого кода — обычно сообществу открытого кода так будет проще вас найти и помочь.
В наши дни у вас есть огромное количество вариантов хостинга чтобы выбирать, все со своими преимуществами и недостатками. Чтобы увидеть актуальный список, проверьте страницу GitHosting в главной вики Git:
http://git.or.cz/gitwiki/GitHosting
Поскольку мы не можем рассмотреть их все, и поскольку я работаю на один из них, мы в этом разделе рассмотрим процесс создания учётной записи и нового проекта на GitHub. Это даст вам представление о вовлечённых в него вещах.
GitHub пока что крупнейший Git-хостинг сайт открытого кода и также один из очень немногих, предоставляющих и публичный и приватный хостинг, так что вы можете хранить ваш открытый и коммерческий код в одном месте. На самом деле, мы использовали GitHub, чтобы закрыто совместно писать эту книгу (прим. переводчика: и открыто переводить после её издания).
GitHub
GitHub немного отличается от других хостингов кода способом группировки проектов. Вместо того, чтобы быть основанным главным образом на проектах, он ориентируется на пользователей. Это значит, что когда я размещаю свой проектgrit
на GitHub, вы найдёте его как github.com/schacon/grit вместо github.com/grit. Нет никакой канонической версии проекта, что позволяет проекту беспрепятственно переходить от пользователя к другому пользователю, если первый забросил проект.
GitHub — это также коммерческая компания, которая взимает плату за аккаунты с приватными репозиториями, но кто угодно может быстро получить бесплатную учётную запись, чтобы разместить сколько угодно открытых проектов. Мы быстро рассмотрим, как это устроено.
Настройка учётной записи
Первое, что вам нужно сделать, это настроить учётную запись. Если вы посетите страницу Тарифные планы по адресу http://github.com/plans и нажмёте на кнопку “Создать бесплатный аккаунт” (см. рисунок 4-2), вы попадёте на страницу регистрации.
Рисунок 4-2. Страница тарифных планов GitHub
Рисунок 4-3. Страница регистрации пользователя GitHub
Рисунок 4-4. Что нового на GitHub
Затем вы можете создать новый репозиторий.
Начните с клика на ссылку “Новый репозиторий” рядом с разделом “Твои репозитории” на странице “Что нового”. Вы попадёте к форме “Создать новый репозиторий” (см. рис. 4-5).
Рисунок 4-5. Создание нового репозитория на GitHub
Рисунок 4-6. Заглавная информация проекта GitHub
Рисунок 4-7. Инструкции для нового репозитория
$ git init
$ git add .
$ git commit -m 'initial commit'
Если у вас есть локальный Git-репозиторий, добавьте GitHub как удалённый сервер и отправьте вашу ветку master
:
$ git remote add origin git@github.com:testinguser/iphone_project.git
$ git push origin master
Теперь ваш проект размещён на GitHub и вы можете дать ссылку на него любому, с кем вы захотите разделить проект. В этом случае, это http://github.com/testinguser/iphone_project. Вы также можете видеть в заголовке каждой страницы проекта, что у вас две Git-ссылки (см. рис. 4-8).
Рисунок 4-8. Заголовок проекта с публичной и приватной ссылками
Импорт из Subversion
Если у вас есть существующий публичный Subversion-проект, который вы хотите импортировать в Git, GitHub часто может сделать это за вас. Внизу страницы инструкций есть ссылка на импорт из Subversion. Если вы кликнете по ней, вы увидите форму с информацией о процессе импорта и текстовое поле, где вы можете вставить ссылку на ваш публичный Subversion-проект (см. рис. 4-9).
Рисунок 4-9. Интерфейс импорта из Subversion
Добавление участников
Давайте добавим остальную команду. Если Джон, Джози и Джессика зарегистрированы на GitHub, и вы хотите дать им доступ на отправку в ваш репозиторий, вы можете добавить их к вашему проекту как участников. Это позволит им отправлять изменения, используя их приватные ключи. Нажмите на кнопке “Редактировать” в заголовке проекта или вкладку “Администратор” вверху чтобы попасть на страницу администратора вашего проекта на GitHub (см. рис. 4-10).
Рисунок 4-10. Страница администратора на GitHub
Рисунок 4-11. Добавление участника в ваш проект
Рисунок 4-12. Список участников вашего проекта
Ваш проект
После того как вы отправили ваш проект или импортировали его из Subversion, у вас есть главная страница проекта, которая выглядит как на рис. 4-13.
Рисунок 4-13. Главная страница проекта на GitHub
git log
. Вкладка Сеть показывает всех людей отделивших ваш проект и возвративших свои наработки. Вкладка Файлы позволит вам выложить бинарные файлы проекта и ссылки на архивы любых помеченных точек вашего проекта. Вкладка Вики предоставляет вики, где вы можете писать документацию или другую информацию о вашем проекте. Вкладка Графики показывает некоторую информацию о вкладе участников и статистику о вашем проекте. Главная вкладка Исходный код показывает листинг корневого каталога проекта и автоматически отрисовывает README
файл под ней, если он у вас есть. Эта вкладка также показывает информацию о последнем коммите.
Ответвления проектов
Если вы хотите внести вклад в существующий проект, в который у вас нет права на отправку изменений, GitHub приветствует ответвления. Когда вы смотрите на страницу проекта, который выглядит интересно, и вы непрочь немного поработать над ним, вы можете нажать на кнопку Форк в заголовке проекта, чтобы GitHub скопировал проект вашему пользователю, чтобы вы могли отправлять изменения туда. Таким образом, проектам не нужно беспокоиться о добавлении пользователей как участников для предоставления им доступа на отправку изменений. Люди могут ответвить проект и отправить в него, хранитель главного проекта может вернуть эти изменения, добавляя их как удалённые серверы и сливая их работу. Чтобы ответвить проект, посетите страницу проекта (в нашем случаеmojombo/chronic
) и нажмите на кнопку Форк в заголовке (см. рис. 4-14).
Рисунок 4-14. Получение доступной для записи копии любого репозитория
Рисунок 4-15. Вы ответвили проект