Git и GitHub: что это такое и в чём разница. Как начать работать с GitHub: быстрый старт Какое животное является талисманом github

Всем доброго времени суток! Вы, наверное, слышали такое слово как GitHub ? В любом случае именно сегодня мы поговорим о том, что это такое и научимся азам работы с ним.

Что такое GitHub?

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

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

Каждый человек может создать репозиторий , где хранить какой-то свой проект и, если захочет, показывать его другим людям. Другие же могут просматривать все файлы проекта и их исходный код с подсветкой синтаксиса, а если нужно, то могут их даже скачать или изменить.

Регистрация

Регистрация в данной системе очень простая. Вам нужно лишь перейти по ссылке

https://github.com/

Там ввести незанятый логин, email и пароль и после чего нажать на кнопку Sign Up for GitHub . Теперь перейдите в указанную вами почту и подтвердите регистрацию, перейдя по присланной вам ссылке. Теперь авторизуйтесь и... вы уже зарегистрированы. Не трудно, правда?

Создаем репозиторий

Чтобы создать свой репозиторий, найдите в правом верхнем углу знак плюса и нажмите на него, выбрав там пункт New repository .

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

Ниже вы можете видеть радио-переключатель с режимами Public и Private . Первый означает, что ваш репозиторий будет виден всем и вы можете выбрать тех, кто сможет совершать с ним коммиты(commit). Второй же означает, что репозиторий будет закрытым, но вы можете выбрать, кто сможет коммитить и просматривать его.

Ниже вы можете установить галочку, чтобы сразу инициализировать этот репозиторий с файлом readme .

Теперь нажмите на кнопку Create repository .

Поздравляю! Вы создали свой первый репозиторий!

Установка GitHub

Для Windows есть программа windows.github.com

Для Mac есть mac.github.com

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

http://msysgit.github.io/

Откройте терминал(командную строку) и введите следующее:

Git --version

Если вы увидите версию, то все работает.

Клонируем репозиторий

Перейдите в созданный вами репозиторий и найдите справа текстовое поле, подписанное HTTPS . Там вы найдете ссылку, которую нужно скопировать.

Откройте терминал и введите следующее:

Git clone YOURLINK YOURNAME

Вместо yourlink вставьте скопированную ссылку и через пробел введите любое имя, которое хотите. Если вы не введете имя, то оно будет таким же, как и название репозитория.

Теперь внутри папки git появился склонированный нами репозиторий. Внутри вы можете обнаружить файл readme.txt . Пока что это все, что у нас есть.

Настройка

Когда вы делаете какие-то изменения, то все это сохраняется и отображается. В этом большой плюс систем контроля версий. Но нам нужно сделать несколько настроек.

В терминале введите следующее:

Git config --global user.name "Ваше имя"
git config --global user.email "Ваш email"

Если теперь вы введете

Git config user.name

То получите указанное имя.

Итак, на этом заканчивается первая часть, посвященная работе с GitHub . Сегодня мы в основном возились с настройками, но дальше будет интересней, и вы сразу поймете всю прелесть данного сервиса. Спасибо за внимание!

Здесь описывается практическая часть вопроса использования Git - его установка и регистрация на сервере GitHub.com.

GitHub.com - это сервис, предлагающий хранение вашего кода и данных с использованием системы контроля версий Git . GitHub предоставляет бесплатный тарифный план для хранения 300Мб данных в открытом виде. Это значит, что любой пользователь интернета может скачать себе ваши данные. На GitHub можно разместить и закрытые для других репозитарии, заплатив 7$ в месяц. На бесплатном аккаунте GitHub, по-умолчанию, никто не сможет изменить ваши данные (могут только читать). Но вы можете настоить, кто из пользователей системы GitHub, имеет право на запись.

В статье подробно рассказывается, как делать настройку Git в ОС Windows и в ОС Linux.

Установка Git под Linux

Пользователям Linux, думаю, нет смысла объяснять, как устанавливать Git - в каждой системе это делается по-разному. В системе Debian (которая стоит у меня), для установки Git, можно использовать команду:

apt-get install git

Установка Git под Windows

Идем на официальную страницу Git http://git-scm.com , кликаем на Download for Windows . В открывшемся окне кликаем на Full installer for official Git . Запускаем полученный exe-шник.

В процессе инсталляции будет задан такой вопрос:

Я рекомендую выбрать "Run Git from the Windows Command Prompt". Все остальные опции можно оставлять по-умолчанию. После установки Git нужно перегрузиться или завершить сеанс пользователя и снова войти, чтобы применились изменения в системной переменной PATH.

Если получаем информацию о версии, то Git установлен и работает. Если получаем информацию что программа git не найдена, разбираемся что сделали не так.

Настройка SSH-ключей

Перед тем, как регистрироваться на GitHub, следует вначале сгенерировать SSH-ключ шифрования. Этот ключ необходим, чтобы быстро устанавливать соединение с GitHub, не вводя пароля. Без такого ключа GitHub просто не будет работать.

Внимание!

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

Пользователям MyTetra: интерфейс работы с командной строкой, который используется для вызова git при синхронизации, не может работать на ввод символов. Поэтому, если вы зададите пароль, синхронизация работать не будет.

Настройка SSH-ключей в Linux

В операционной системе Linux вначале нужно заглянуть в каталог ~/.ssh . Если там есть файлы id_rsa и id_rsa.pub то это и есть SSH-ключи. Если такого каталога или таких файлов нет, то ключи нужно сгенерировать. Даем команду:

Вместо [email protected] нужно указать свой email. В процессе генерации ключа у вас спросят куда положить файлы, в ответ просто нажимаем Enter. При запросе пароля просто нажимаем Enter. После генерации, в каталоге ~/.ssh должны появиться файлы id_rsa и id_rsa.pub , они нам пригодятся в дальнейшем.

Настройка SSH-ключей в Windows

В операционной системе Windows генератор SSH-ключей включен в комплект поставки Git. Для генерации ключей необходимо запустить на выполнение файл C:\Program Files\Git\Git bash.vbs . Его можно запустить как обычный exe-шник. Откроется программа "Консоль git". В ней надо дать команду:

ssh-keygen -t rsa -C "[email protected]"

Будьте внимательны, в этой консоли подглючивает копи-паст, прощще ввести команду вручную. В качестве email указываем свой почтовый ящик. На запрос "Enter file in which to save the key " просто нажимаем Enter. При запросе пароля "Enter passphrase " и "Enter same passphrase again " просто нажимаем Enter. В процессе генерации ключей в консоли будет выдаваться примерно следующая информация:

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Documents and Settings/username/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Documents and Settings/username/.ssh/id_rsa.
Your public key has been saved in /c/Documents and Settings/username/.ssh/id_rsa.pub.
The key fingerprint is:
51:db:73:e9:31:9f:51:a6:7a:c5:3d:da:9c:35:8f:95 [email protected]

После выполнения этой программы, в каталоге C:\Documents and Settings\username\.ssh будут лежать файлы id_rsa и id_rsa.pub , они нам пригодятся в дальнейшем.

Регистрация на GitHub.com

Теперь всё готово для регистрации. Переходим на стартовую страницу GitHub.com . Интерфейс немного замороченный, поэтому приведу пару скриншотов где что нажимать. Дизайн и верстку могут в любой момент сменить, так что описываю логику действий на данный момент.

В верхнем меню находим пункт "Pricing and Signup " и нажимаем на него:

Откроется страница выбора тарифного плана. Выбираем бесплатный аккаунт "Create a free account ":

Установка SSH-ключа в GitHub

Сразу после регистрации необходимо прописать в системе GutHub свой публичный ключ шифрования (открытый SSH-ключ). Для добавления ключа, надо в правом верхнем углу нажать "Account Settings ":

В открывшемся окне нужно кликнуть на пункт меню "SSH Public Keys ", и нажать "Add Another Public Key ". Появится два поля - название ключа (Title ) и содержимое ключа (Key ).

В поле Title можно написать название компьютера, на котором сгенерирован публичный ключ. Можно писать по-русски.

В поле Key надо вставить содержимое файла id_rsa.pub . Помните, в каком каталоге они находятся? Переходим в этот каталог, открываем любым текстовым редактором файл id_rsa.pub (именно с расширением .pub , не перепутайте). Выделяем весь текст, копируем, и вставляем на странице GitHub в поле Key .

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

Создание репозитария на GitHub

Теперь пришло время создать свой первый репозитарий на GitHub. Репозитарий можно рассматривать просто как директорию, в которой будут лежать синхронизируемые файлы и поддиректории. Создавать репозитарий нужно в web-интерфейсе GitHub, а наполнять его файлами и работать с ним можно будет уже с помощью программы git на своем компьютере.

Для создания репозитария, нужно в правом верхнем углу нажать "Dashboard ". В открывшемся окне вы увидите пункт "Create A Repository ":

Так вот, этот пункт нам не нужен! Данный пункт открывает не диалог создания репозитария, а страничку помощи. Вместо клика по этому пункту, ищем ниже на странице малоприметную ссылку "Create A Repository ". Она и откроет диалог добавления нового репозитария.

В диалоге добавления нового репозитарию нужно заполнить, как минимум, поле названия проекта "Project Name ". В названии проекта лучше не использовать кириллицу, так как имя проекта - это по факту имя директории. Для избежания проблем лучше, чтобы имя проекта содержало только латиницу. После нажатия кнопки "Create Repository ", репозитарий будет создан.

Рабочая ссылка на репозитарий в системе GitHub формируется так. Если вы зарегистрировались под именем username , и ваш репозитарий называется reponame , то для доступа к этому репозитарию можно использовать следующие ссылки:

В синтаксисе Git:

[email protected]:username/reponame.git

В синтаксисе Https:

https://[email protected]/username/reponame.git

Работа с репозитарием на GitHub через программу Git

Начиная с этого момента, пляски вокруг web-интерфейса GitHub можно считать законченными. Далее можно работать только используя программу git.

Вначале нужно сделать небольшую настройку программы git: указать локальной системе git имя пользователя и email. Это делается следующими командами, которые можно выполнить, находясь в любом каталоге:

git config --global user.name "YourFullName"
git config --global user.email [email protected]

где вместо YourFullName нужно написать свое имя, а вместо [email protected] - свой email. Эти значения используются для логина на GitHub. Поэтому на месте YourFullName нужно указать ваш логин на GitHub-е, а на месте [email protected] нужно указать email, который вы вводили при генерации ключей шифрования.

После этих настроек, можно заливать свои файлы в репозитарий. Переходим в каталог со своим проектом, и даем команды:

git commit -a -m "first commit"

git remote add origin [email protected]:username/reponame.git

git push -u origin master

После этих команд на сервере GitHub образуется копии файлов того каталога, в котором были выполнены данные команды. Далее можно уже делать коммиты, заливки на сервер GitHub изменений, считывания изменений с сервера. Но это уже совсем другая история.

Github - это очень известная платформа для хранения, распространения и управления исходным кодом открытых проектов. Этот сервис используют множество разработчиков по всему миру, среди которых есть и крупные компании, такие как Microsoft, RedHat и множество других, также сотни разработчиков многих популярных проектов.

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

Итак, допустим, у вас есть свой проект и вы хотите разместить его код на Github в открытом доступе чтобы другие пользователи могли его посмотреть и участвовать в разработке. Первое что вам нужно сделать - создать аккаунт.

1. Создание аккаунта

Чтобы создать новый аккаунт на сайте откройте главную страницу GitHub и тут же сразу вы можете ввести данные для новой учетной записи. Вам нужно указать имя пользователя, Email и пароль:

Когда завершите ввод, нажмите кнопку "Sign Up Free" :

На следующем шаге вам нужно выбрать тип репозитория. Публичные репозитории бесплатны, но если вы хотите создать частный репозиторий, код из которого будет доступен только вам, то придется платить $7 в месяц.

Аккаунт готов, и вы будете перенаправлены на страницу, где сможете создать свой первый проект. Но перед тем как вы сможете это сделать, нужно подтвердить свой Email адрес. Для этого откройте ваш почтовый ящик и перейдите по ссылке в письме от Github.

Никакая настройка github не нужна, достаточно лишь несколько кликов мышкой.

2. Создание репозитория

На открывшейся странице, это главная страница для авторизованных пользователей, нажмите кнопку "Start a project" :

Вы можете сразу же инициализировать репозиторий, создав файл Readme, для этого нужно отметить галочку "Initialize this repository with a README" внизу страницы. Также можно выбрать лицензию:

Когда все будет готово, выберите "Create project" , будет создан новый проект с файлом README, в котором находится описание и файлом лицензии.


3. Добавление веток

Ветки Github позволяют работать с несколькими версиями проекта одновременно. По умолчанию при создании репозитория создается ветка master, это основная рабочая ветка. Можно создать дополнительные ветки, например, для того, чтобы тестировать программное обеспечение перед тем, как оно будет опубликовано в ветке master. Таким образом, можно одновременно разрабатывать продукт и предоставлять пользователям стабильную версию. Также можно создавать отдельные ветки для версии программы для разных систем.

Текущая ветка обозначена в верхнем левом углу после слова "Branch". Чтобы создать новую ветку просто разверните этот список и начните набирать ее имя:

Сайт сам предложит вам создать новую ветку, выберите "Create branch".

Сразу же после создания вы будете работать с только что созданной веткой.

4. Изменение файлов и коммиты

Любые изменения файлов на Github делаются с помощью коммитов. Коммит выполняется путем внесения самих исправлений и описания этих исправлений. Это необходимо для того, чтобы вы знали что и когда вы меняли, а также позволяет легко отслеживать работу команды. Слово коммит можно перевести как "фиксировать". То есть мы можем внести изменения в несколько файлов, а затем их зафиксировать. Давайте для примера изменим файл README. Для этого найдите в в правой стороне панели кнопку с кисточкой и нажмите на нее:

Откроется текстовый редактор, где вы можете ввести нужные вам исправления:

После того как вы сделаете все что вам нужно, необходимо заполнить поле "Commit" внизу страницы. Кратко опишите что было изменено, а затем нажмите кнопку "Commit changes" :

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

5. Создание запросов слияния (Pull Request)

GitHub для начинающих может показаться очень сложным именно из-за таких возможностей, но это очень удобно если разобраться. Запрос слияния или Pull Request - это возможность, благодаря которой любой разработчик может попросить другого, например, создателя репозитория просмотреть его код и добавить его в основной проект или ветку. Инструмент работы с запросами слияния использует инструмент сравнения diff, поэтому вы можете увидеть все изменения, они будут подчеркнуты другим цветом. Pull Request можно создать сразу же после создания коммита. Давайте отправим Pull Request из нашей testing ветки в основную. Сначала откройте вкладку "Pull Request".

Здесь нажмите кнопку "Create Pull Request" :

В этом окне вы можете просмотреть все изменения, сейчас мы видим, что была добавлена строчка:

6. Просмотр и одобрение запросов на слияние

Теперь, на той же вкладке Pull Requests мы видим только что созданный запрос на слияние и нам остается только принять его нажав "Merge Pull Request" :

Но если этот запрос пришел от другого человека, вы должны проверить что он там изменил и нужно ли это, для этого просто нажмите на описание запроса и увидите уже знакомое окно просмотра изменений:

Затем код будет импортирован в основную ветку, а ветка testing может быть безопасно удалена.

7. Отчеты об ошибках

Удобно еще то, что возможно использование GitHub не только для разработки и управления кодом, но и для обратной связи с пользователями. На вкладке "Issue" пользователи могут оставлять сообщения о проблемах, с которыми они столкнулись при использовании вашего продукта. Откройте вкладку "Issues" , и нажмите на кнопку "New issue" :

8. Релизы

Последнее что мы сегодня рассмотрим - это релизы. Когда продукт достиг определенной стадии можно выпустить релиз, чтобы пользователи и вы могли быть уверенны что там все стабильно и никто ничего не сломал неверным Pull Request в Master. Сначала нужно перейти на главную страницу проекта, затем на вкладку "Releases" :

На этой странице нужно указать версию в поле "Tag Version" , затем имя релиза и небольшое описание. Если у вас есть скомпилированные архивы с бинарниками то их тоже нужно прикрепить сюда. Затем нажмите "Create Release" :

После создания релиза будет создана такая страничка:

Выводы

В этой статье мы рассмотрели как пользоваться GitHub для размещения и управления своим проектом. Вся система на английском, так что базовые знания языка очень желательны но даже без них работа с github будет не очень трудной. Надеюсь, эта информация была полезной для вас. Если вас интересует как работать с Git из командной строки, смотрите статью для начинающих.

Противостояние изменениям - основная черта человека. Если в то время, когда вы начинали работу с системами контроля версий, не было Git - весьма вероятно, что вы начинали с Subversion. Часто люди говорят, что Git слишком сложен для начинающих. Тем не менее, я позволю себе с вами не согласиться.

В этой статье я расскажу, как можно использовать Git в работе с вашими проектами. Будем считать, что вы создаете проект с нуля, и хотите использовать Git в качестве системы контроля версий. После ознакомления с основными командами, мы ознакомимся с тем, как можно выложить ваш код на GitHub.

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

Установка Git

На официальном сайте Git есть на различные системы - Linux, Mac, Windows. В нашем случае мы будем использовать Ubuntu 13.04, и Git мы будем устанавливать посредством apt-get .

Sudo apt-get install git

Начальная конфигуация

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

Mkdir my_git_project cd my_git_project

Первым делом надо инициализировать Git-репозитарий в директории проекта. Сделать это можно командой init , которая создает директорию.git со всей информацией о вашем проекте.

Git config --global user.name "Shaumik" git config --global user.email "[email protected]" git config --global color.ui "auto"

Стоит отметить, что если вы не укажете ваш адрес и имя, то вместо них будут использоваться значения по умолчанию. В нашем случае значениями по умолчанию будут donny и donny@ubuntu.

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

Готовим файлы для коммита

Следующим шагом мы создадим несколько файлов. Можно использовать для этого любой текстовый редактор. Заметьте, что если вы инициализируете Git в уже существующем проекте, вам не нужно делать этот шаг.

Проверяем состояние репозитария

Теперь, когда в вашем проекте есть файлы, давайте посмотрим, как Git с ними обращается. Чтобы проверить текущий статус репозитария, используйте команду git status

Добавляем файлы в Git

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

Git add my_file

Проверив статус репозитария видим, что один из файлов уже добавлен в него.

Чтобы добавить несколько файлов, используем следующее (заметьте, что первый файл мы добавили ранее, так что добавляем только оставшиеся два).

Git add myfile2 myfile3

Можно использовать git add рекурсивно, но будьте осторожны с этой командой. Есть некоторые файлы (например, скомпилированные программы), которые не должны быть добавлены в систему контроля версий. Если вы используете git add рекурсивно, такие файлы также попадут в репозитарий.

Удаляем файлы

Представим, что вы случайно добавили в репозитарий файл, который не должен был туда попасть. Или же вы хотите убрать из системы контроля версий какой-либо файл. В общем, команда git rm не просто удалит файл из репозитария, но и физически удалит его с диска. Чтобы Git перестал отслеживать файл, но он остался на диске, используйте следующую команду:

Git rm --cached [имя_файла]

Коммитим изменения

Как только вы добавили все необходимые файлы, вы можете закоммитить (зафиксировать) их в Git. Представьте, что коммит - это снимок состояния проекта на определенном этапе, к которому вы можете вернуться в любой момент времени, и увидеть состояние проекта на тот момент. С каждым коммитом ассоциируется сообщение, которое задается аргументом после префикса -m

Git commit -m "Мой первый коммит"

Указывайте сообщение, которое будет содержать полезную информацию, так как они помогают понять, что же именно было изменено в рамках данного коммита. Избегайте каких-то общих сообщений, типа “Правил баги”. Если у вас есть баг-трекер, вы можете указать сообщение типа “Поправлен баг #123”. Хорошая практика - указывать в сообщении имя ветки или улучшения. Например, “Управление активами - добавлена возможность генерировать PDF на основе актива” - понятное и доходчивое сообщение.

Git определяет коммит длинным шестнадцатеричным номером. Обычно, нет необходимости копировать всю строку, первых 5-6 символов достаточно для идентификации конкретного коммита. По скриншоту видно, что наш коммит идентифицируется числом 8dd76fc .

Дальнейшие коммиты

Давайте изменим несколько файлов после того, как мы их закоммитили. После того, как мы их изменили, git status сообщит о том, что у нас есть измененные файлы.

Можно посмотреть, что же изменилось в этих файлах с момента предыдущего коммита, с помощью команды git diff . Если вы хотите просмотреть изменения для конкретного файла, можно использовать git diff <файл> .

Необходимо проиндексировать изменения, и закоммитить их. Все измененные файлы проекта можно добавить на коммит следующей командой:

Можно избежать использования этой команды, если добавить параметр -a к git commit . Эта команда проиндексирует все измененные файлы, и закоммитит их. Но такой подход может быть довольно опасным, так по ошибке можно закоммитить то, что не хотелось. Например, скажем, что вы открыли файл, и случайно его изменили. При индексировании измененных файлов вы будете оповещены об изменениях в каждом файле. Но если вы отправите на коммит все измененные файлы не глядя с помощь. git commit -a , то будут закоммичены все файлы, включая те, которые вы коммитить не хотели.

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

Управление проеком

Чтобы просмотреть историю проекта, можно воспользоваться следующей командой:

Она отобразит полную историю проекта в виде списка коммитов и информацию о них. Информация о коммите содержит хеш коммита, автора, время и сообщение коммита. Есть множество видов команды git log , с которыми придется познакомиться в случае использования ветвления в Git. Чтобы посмотреть детали конкретного коммита, и измененные файлы, выполните следующую команду:

Git show <хеш_коммита>

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

Читайте также: