Что такое GitHub, зачем нужен и как пользоваться ГитХаб, как начать использование сервиса — пособие для начинающих.
GitHub – один из самых популярных сервисов, предназначенных для размещения репозиториев с открытым исходным кодом. Сайт позволяет публиковать пользовательские проекты и отслеживать изменения, внесенные в каждую итерацию. Другие пользователи GitHub могут просмотреть код пользователя и предложить собственные изменения.
Данное определение дает лишь краткое понимание. Однако функционал сервиса этим не ограничивается. В данной обзорной статье рассмотрим Github более подробно.
- Что такое GitHub и как начать пользоваться — пособие для начинающих
- Git и GitHub — в чем разница, первое знакомство с Гит и ГитХаб
- Что такое Git?
- Что такое GitHub?
- В чем главное отличие?
- Интересные факты про Github
- Возможности Github
- Как работает GitHub, функции
- Разветвление (forking)
- Запросы на извлечение (pull request)
- Объединение (merging)
- Гайд – как начать работу в Github с нуля
- Шаг 0. Установка Git и создание учетной записи на GitHub
- Шаг 1. Запуск Git и создание первого локального репозитория
- Шаг 2. Создание нового файла в репозитории
- Шаг 3. Добавление файла в промежуточную среду для отслеживания
- Шаг 4. Создание commit
- Шаг 5. Создание новой ветки new branch
- Шаг 6. Создание нового репозитория на GitHub
- Шаг 7: Отправка ветки проекта на GitHub
- Дополнительно
- Шаг 8. Создание первого pull request
- Шаг 9. Объединение pull request
- Шаг 10. Отмена изменений Github на локальном компьютере
- Дополнительные возможности Github и Git
- Клонирование репозитория на локальный компьютер
- Поиск удаленных репозиториев
- Десктопная версия гитхаба — что это GitHub Desktop, основной функционал, возможности и процесс установки
- Как установить
- Основной функционал
- Github API
- Управление и настройка проектов Github Desktop
- Создание, добавление и клонирование репозитория
- Создание New Branch
- Безопасность
- Настройка политики безопасности
- Управление графиком зависимостей
- Лицензии
Что такое GitHub и как начать пользоваться — пособие для начинающих
GitHub – интернет-портал, в котором разработчики и программисты могут загружать созданный ими код и совместно работать над его улучшением.
Отличительной особенностью GitHub является его надежная система контроля версий. Контроль версий позволяет программистам настраивать ПО без ущерба для самого программного обеспечения. Предлагаемые изменения могут быть легко объединены в полноценный релиз, но только после того, как все изменения будут рассмотрены и одобрены.
Git и GitHub — в чем разница, первое знакомство с Гит и ГитХаб
Что такое Git?
Ответ: Быстрая и масштабируемая система контроля версий.
Git — это бесплатная распределенная система контроля версий с открытым исходным кодом, предназначенная для быстрой и эффективной работы с любыми проектами, от небольших до очень крупных.
Что такое GitHub?
Ответ: мощный облачный сервис для управления частными разработками и проектами с открытым исходным кодом.
В чем главное отличие?
Git представляет собой полноценное программное обеспечение в категории «Система контроля версий», которое устанавливается на персональный компьютер пользователя. Git позволяет через командную строку (Microsoft PowerShell) вносить изменения в код, а GitHub предоставляет возможность хранить проекты в публичном доступе.
Интересные факты про Github
- Максимальное количество пользователей на сайте в прошлом году (по статистическим данным 24 июля 2021 года) составило 45 миллионов человек.
- В 2018 году Microsoft приобрела GitHub за 7,5 миллиарда долларов.
- На Github есть репозиторий git с открытым исходным кодом. Любой желающий может внести в него изменения. Проект доступен по ссылке — https://github.com/git/git?ref=stackshare
Возможности Github
- Возможность интеграции с наиболее популярными платформами и сервисами — Amazon, Google Cloud и Code Climate.
- Поддержка более 200 языков программирования.
- Высокий уровень консолидации и «цеховой солидарности». Когда пользователь размещает свой проект на GitHub, остальные представители сообщества программистов могут загрузить и оценить работу, качество кода и степень его проработанности. Сторонние пользователи могут предупредить владельца проекта о возможных проблемах, конфликтах переменных и т.д.
Как работает GitHub, функции
Из наиболее важных функций Github можно выделить три — разветвление, запросы на извлечение и объединение. Стоит рассмотреть каждую функцию в отдельности.
Разветвление (forking)
Разветвление проекта создает копию (fork), которая позволяет пользователю свободно экспериментировать, не влияя на исходный проект.
Создание форков и запросов на извлечение:
Запросы на извлечение (pull request)
Pull request публикуется разработчиком после того, как он закончит работу над исправлением/изменением кода. При этом сам владелец проекта может просмотреть внесенные изменения и задать любые дополнительные вопросы.
Объединение (merging)
После того, как владелец одобрит pull request, он объединяет запрос на извлечение и применяет изменения из разветвленного проекта к исходному коду.
Гайд – как начать работу в Github с нуля
Данный гайд отлично подойдет всем новичкам, которые только начинают изучать Git и Github.
Нижеприведенные шаги помогут выстроить оптимальную систему работы с данным программным обеспечением. Вы научитесь вносить изменения в кодовую базу, открывать запрос на извлечение (создавать pull request) и объединять код в основную ветвь. Итак, приступим.
Шаг 0. Установка Git и создание учетной записи на GitHub
- Перейдите на официальный веб-сайт Git: https://git-scm.com/downloads
- Нажмите на ссылку для скачивания настольной версии Git для Windows и дождитесь окончания загрузки.
- Извлеките и запустите установщик Git двойным кликом по файлу Git.exe.
- Разрешите приложению вносить изменения в ПК путем нажатия кнопки «Да» в открывшемся диалоговом окне «Управление учетными записями пользователей».
- Запустите процесс установки Git. Ознакомьтесь с основным документом «Публичная лицензия GNU» и нажмите кнопку «Далее».
- Укажите место для установки программы или же оставьте значения по умолчанию. Программа предложит создать папку меню «Пуск». Пропустите этот пункт.
- Выберите текстовый редактор, который собираетесь использовать совместно с Git. В выпадающем окне необходимо выбрать Notepad++ (или любой другой текстовый редактор, с которым ранее работали) и нажать «Далее».
- Укажите название для новой ветки проекта. Значение по умолчанию – «master». Рекомендуется оставить данный параметр по умолчанию.
- В параметрах возможностей выбора PATH, SSH-клиента, сертификатов сервера, окончания строк и терминала оставьте все как есть и жмите кнопку «Далее».
- Оставьте все значения параметров по умолчанию и начните установку программы.
- После завершения установки отметьте флажки для просмотра примечаний к выпуску и запустите Git Bash. Закройте окно установщика.
Зарегистрировать аккаунт на Github можно по следующей ссылке: https://github.com/join. Для этого необходимо ввести основные регистрационные данные, необходимые в дальнейшем для подтверждения учетной записи.
Шаг 1. Запуск Git и создание первого локального репозитория
Git имеет два режима использования – bash (Git Bash) и графический интерфейс пользователя (Git GUI). Чтобы запустить Git Bash, откройте меню «Пуск» — «Windows», введите git bash и нажмите Enter (или щелкните два раза левой кнопкой мыши на ярлык программы).
Для запуска Git GUI, откройте меню «Пуск» — «Windows», введите git gui и нажмите Enter. В нашем случае мы будем использовать Git Bash.
Создание нового проекта в программе Git Bash предполагает использование специальных команд для инициализации нового репозитория. Для начала необходимо открыть терминал Bash, нажав клавишу правой кнопкой мыши на рабочем столе, а затем в выпадающем меню Git Bash Here.
В окне терминала на локальном компьютере создайте новый тестовый каталог (папку), введя следующее:
getrekt:Desktop getrekt $ cd ~/Desktop
getrekt:Desktop getrekt $ mkdir myproject
getrekt:Desktop getrekt $ cd myproject/
Команда mkdir создает новую папку локального проекта.
Создаем наш первый Github репозиторий:
Шаг 2. Создание нового файла в репозитории
В папке с проектом добавьте новый текстовый файл, используя команду touch. Стандартным образом команда создаст пустой текстовый файл, который будет иметь расширение .txt.
Внимание! Git сохраняет изменения/управляет изменениями только в тех файлах, которые он отслеживает. После создания нового файла пользователь может отследить его статус при помощи команды git status. Консоль выдаст список файлов, которые присутствуют в репозитории.
Как только вы добавите файл в папку, содержащую репозиторий git, программа заметит изменение внутри проекта. Однако автоматическое отслеживание не будет включено, необходимо использовать для этого специальную команду – git add.
getrekt:myproject getrekt $ touch getrekt.txt
getrekt:myproject getrekt $ ls
getrekt.txt
Шаг 3. Добавление файла в промежуточную среду для отслеживания
Добавьте файл в промежуточную среду с помощью команды git add.
getrekt:myproject git add .
При помощи этой команды программа запустит автоматическое отслеживание всех файлов, которые будут созданы в папке проекта. Проверить работоспособность команды можно при помощи git status.
Вот так выглядят логи в командной строке Git Bash после ввода команды git status:
getrekt: getrekt getrekt$ git status
On branch master
Initial commit
Changes to be committed:
(use «git rm —cached …» to unstage)
New file added
New filename: getrekt.txt
new file: getrekt.txt
Комментарий к логам: файл еще не был добавлен в коммит, но вот-вот будет добавлен.
Шаг 4. Создание commit
Commit – контрольная точка любого репозитория. Проще говоря, — пакет изменений, хранящий информацию о добавленных, отредактированных или удаленных файлах, в которых хранится определенный код.
getrekt:myproject getrekt $ git commit -m «МОЙ ПЕРВЫЙ КОММИТ, РЕБЯТА!»
[master (root-commit) b345d9a] МОЙ ПЕРВЫЙ КОММИТ!
1 file changed, 1 insertion(+)
create mode 100644 getrekt.txt
Команда для создания commit – git commit –m «Название коммита».
Внимание! Сообщение в конце команды должно быть осмысленно и понятно другим разработчикам проекта. Не называйте ваши коммиты по типу «asdfadsf» или «foobar». В противном случае никто ничего не поймет, и вам придется тратить кучу времени на их удаление.
Шаг 5. Создание новой ветки new branch
New branch – это полноценная ветвь проекта, которая состоит из целой совокупности коммитов. Представляет собой отдельный релиз продукта, но в рамках системы контроля версий.
Ветви позволяют пользователю перемещаться между «состояниями» проекта.
В официальной документации git, представлено описание branches: «Branch в Git и Github — подвижный указатель на один из коммитов репозитория».
Например, если пользователь захотел добавить новую страницу на свой веб-сайт, то он сможет создать новую ветку (branch) только для этой конкретной страницы, не затрагивая основную часть проекта.
Как только закончит с ней, то сможет объединить изменения из своей ветки в основную. В случае создания новой ветки, Git отслеживает то, от какого коммита произошло разветвление.
После выполнения команды вы можете прописать в консоли git branch, чтобы подтвердить создание ветви:
getrekt:myproject getrekt $ git branch
master
* my-new-branch
Название my-new-branch со звездочкой указывает, в какой ветви находится пользователь в данный момент времени.
Примечание: По умолчанию самая первая ветвь каждого репозитория git называется «master» (и обычно используется в качестве основной в проекте). В рамках борьбы с расизмом некоторые разработчики стали использовать альтернативные названия для ветки по умолчанию, например, «primary». Однако, чаще всего пользователи могут увидеть «master» или похожие названия, используемые для обозначения.
Стоит иметь ввиду, что почти в каждом репозитории есть основная ветвь, которую можно рассматривать как официальную версию проекта. Если это веб-сайт, то ветвь — это версия, которую видят пользователи.
Если это приложение, то основной ветвью является релиз, который устанавливают пользователи на свой компьютер или мобильное устройство. Именно так работает традиционная обработка версий продуктов Git и Github.
На официальном сайте есть более подробная документации по использованию разных имен ветвей по умолчанию. Информация доступна на Github по ссылке https://github.com/github/renaming
В случае возвращения в ветвь проекта и создания нескольких коммитов новый branch не будет отслеживаться системой контроля версий, пока пользователь не пропишет автоматическое отслеживание.
Шаг 6. Создание нового репозитория на GitHub
Данный шаг не требуется выполнять, если вы хотите отслеживать свой код только локально. Но если вы работаете в команде и принимаете изменения от других программистов, то можете использовать текущие возможности GitHub для совместного изменения кода проекта.
Чтобы создать новый репозиторий на GitHub, необходимо авторизоваться в системе и перейти на главную страницу сайта. В главном меню нажмите на кнопку «New Repository», который находится под знаком «+» рядом с фотографией профиля в правом верхнем углу панели навигации:
После нажатия на кнопку GitHub попросит владельца проекта дать название репозитория и предоставить краткое описание:
Далее нажмите кнопку «Create repository», чтобы подтвердить создание нового проекта.
Появится диалоговое окно, в котором пользователя спросят о том, хочет ли он создать репозиторий с нуля или добавить уже существующий, созданный локально. Во втором случае необходимо загрузить папку проекта на Github.
Внимание! Загрузка локального репозитория может происходит и с использованием командной строки, а конкретнее команд git remote add origin github_url (создает запись о новом подключении к удаленному репозиторию), git push -u origin master (устанавливает связь между той веткой, в которой находится разработчик и веткой master на удалённом сервере).
Вот так выглядят логи в командной строке Git Bash:
getrekt:myproject getrekt $ git remote add origin https://github.com/cubeton/mynewrepository.git
getrekt:myproject getrekt $ git push -u origin master
Counting objects: 3, done.
Writing objects: 100% (3/3), 263 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/cubeton/mynewrepository.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
Шаг 7: Отправка ветки проекта на GitHub
Новая ветка проекта и репозиторий были созданы. Осталось «запушить» ветвь и перенести в новый репозиторий Github. Так сторонние участники сообщества смогут видеть код и вносить в него изменения. В случае одобрения доработок владелец проекта может объединить изменения с основной версией проекта.
Чтобы перенести изменения в новую ветку на GitHub, в командной строке необходимо ввести команду git push. GitHub автоматически создаст ветку в удаленном репозитории:
getrekt:myproject getrekt$ git push origin my-new-branch
Counting objects: 3, done.
Delta compression using up to 8 threads.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 313 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/cubeton/mynewrepository.git
* [new branch] my-new-branch -> my-new-branch
После обновления страницы GitHub, пользователь увидит новую ветку, которая была помещена в репозиторий.
Дополнительно
Что означает слово origin в команде git push origin?
Когда пользователь клонирует удаленный репозиторий на свой локальный компьютер, git создает для него почти во всех случаях стандартный псевдоним «origin», который по сути является сокращением URL адреса удаленного репозитория.
Отправка проекта на GitHub:
Шаг 8. Создание первого pull request
Запрос на извлечение (или pull request) — это способ предупредить владельцев репозитория о том, что разработчик хочет внести некоторые изменения в код.
Вот так выглядит страница с добавлением pull request:
Вот так выглядит интерфейс раздела после создания pull request:
Шаг 9. Объединение pull request
Зеленая кнопка «Merge pull request» внизу создает запрос на слияние. После ее нажатия внесенные изменения добавляются в основную ветку проекта.
Внимание! После слияния удалите ветку. Их большое количество может привести к беспорядку в проекте. Для удаления ветви нажмите серую кнопку «Delete branch» в правом нижнем углу.
Для проверки текущего статуса коммитов, нажмите на ссылку «Commits» на самой первой странице репозитория. По нажатию выведется весь список коммитов в этой ветке. На скриншоте показан именно тот, который был создан только что.
С правой стороны указан хэш-код каждого commit. Хэш-код — это уникальный идентификатор, который может быть использован при подключении API и сторонних сервисов. Также по идентификационному номеру можно ссылаться на конкретный коммит в командной строке настольной версии Git Bash.
Шаг 10. Отмена изменений Github на локальном компьютере
На данный момент репозиторий в системе Github выглядит немного иначе, чем у пользователя на локальном компьютере. Например, коммит, который пользователь сделал в своей ветке и объединил в основную, не существует на локальном компьютере.
Для автоматической синхронизации различных версий проекта необходимо использовать команду git pull origin master (при работе с основной ветвью) или git pull.
getrekt:myproject getrekt $ git pull origin master
remote: Counting objects: 1, done.
remote: Total 1 (delta 0), reused 0 (delta 0), pack-reused 0
From https://github.com/cubeton/mynewrepository
* branch master -> FETCH_HEAD
23242..232433berer3444 master -> origin/master
getrekt.txt | 1 +
1 file changed, 1 insertion(+)
Для проверки текущего статуса выполнения команды пропишите в командной строке git log. Она выведет список всех коммитов.
getrekt:myproject getrekt $ git log
commit 32dgt472hf74yh7734hf747fh373hde7r3heduer73hfhf
Merge: 3fg4dd 34fg3u7j7
Author: Mtdes Ethan < getrekt@yandex.ru>
Date: Fri Sep 11 17:48:11 2015 -0400
Merge branch ‘master’ of https://github.com/cubeton/mynewrepository
commit 44hgfh7f74hdu9jt93hf9ifejffe
Author: Mtdes Ethan < getrekt@yandex.ru>
Date: Fri Jan 07 17:48:00 2021 -02356
commit 46thf9496hf9485hkf857tg9hfj8rh4j
Merge: 33fh5d 3689gfh
Author: Mtdes Ethan < getrekt@yandex.ru>
Date: Fri Jan 07 17:51:00 2021 -02356
commit 46thf9496hf9485hkf857tg9hfj8rh4j
Merge: 33fh5d 3689gfh
Author: Mtdes Ethan < getrekt@yandex.ru>
Date: Fri Jan 07 17:55:00 2021 -02356
Added some more text to my file
commit 355904-43hg940fg959hfg0g95jjgdgdfgf57i86f
Merge: 343fggdd 53efhgffddg
Author: Mtdes Ethan < getrekt@yandex.ru>
Date: Fri Jan 07 17:58:00 2021 -02356
This is my first commit!
Готово! Теперь пользователь знаком со всеми видами работы в системе контроля версий.
Git и GitHub курс обучения для новичков, как установить Git и начать работать с Github, ветки, репозитории, коммиты и другие понятия в практических занятиях по ГитХаб:
Дополнительные возможности Github и Git
Рассмотрим другие полезные «фишки», которые позволят разработчику упростить работу над контролем версий.
Клонирование репозитория на локальный компьютер
Перейдите в свой репозиторий на GitHub. В правом верхнем углу над списком файлов откройте раскрывающееся меню «Clone or download». Скопируйте URL-адрес для клонирования по протоколу HTTPS.
Вернитесь в окно Git Bash и введите команду:
git clone repository_url
repository_url – ссылка текущего проекта, который необходимо клонировать. Вместе него вставляется url репозитория.
В приведенном примере команда клонирует репозиторий по протоколу HTTPS. Другой вариант — клонирование с помощью URL-адресов по SSH-ключам. Для этого необходимо сгенерировать пару SSH-ключей на Windows и назначить открытый ключ учетной записи GitHub.
Поиск удаленных репозиториев
После клонирования в рабочем каталоге на компьютере должна появиться копия репозитория с GitHub. Проект должен содержать каталог с названием и основные файлы. Для того, чтобы в него перейти, необходимо написать следующую команду:
cd git_project
Примечание: Замените git_project фактическим именем загруженного репозитория, либо укажите содержимое текущего каталога с помощью команды ls. Второй способ используется в тех случаях, когда пользователь не может вспомнить название проекта.
Десктопная версия гитхаба — что это GitHub Desktop, основной функционал, возможности и процесс установки
GitHub Desktop — это настольное приложение, которое обеспечивает взаимодействие с GitHub на основе графического интерфейса. В отличие от Git десктопная версия GitHub позволяет выполнять те же самые команды при помощи пользовательского интерфейса путем нажатия кнопок, что заметно упрощает работу с репозиториями.
Как установить
- Перейти по ссылке — https://desktop.github.com/
- Начать скачивание установочного пакета программы.
- Дважды щелкнуть на иконку загруженного файла и приступить к установке Github Desktop.
- Запустить программу через меню «Пуск».
- Войти в систему GitHub, используя данные учетной записи пользователя.
Основной функционал
- Создание, добавление и клонирование репозиториев.
- Использование программы для управления вкладками проектов.
- Внесение изменений в ветку.
- Создание issues, pull request и коммитов.
- Возможность получать доступ к ранним версиям новых продуктов.
Github API
Github REST API — интерфейс, который предоставляет разработчикам доступ к данным, проектам и репозиториям Github, а также позволяет отправлять серверные запросы.
По ссылке https://api.github.com/ находятся все URL-адреса, на которые можно отправлять простейшие GET-запросы:
Чаще всего разработчики создают реквесты на программном языке Python в формате JSON. Сначала необходимо получить основную информацию о репозитории по ссылке — https://api.github.com/user/repos
Основная информация вписывается в конфигурационный файл в формате JSON. В нем находятся основные параметры о пользователе — аватар, читатели, количество репозиториев, загрузок и т.д. Эти данные затем передаются на сервер.
Управление и настройка проектов Github Desktop
После установки, регистрации учетной записи и настройки приложения пользователь может начать использовать программу GitHub.
Создание, добавление и клонирование репозитория
Для создания нового репозитория необходимо выбрать «Файл» и нажать кнопку «Создать хранилище».
Для добавления локального проекта необходимо выбрать меню «Файл» и нажать кнопку «Добавить локальный репозиторий».
Для клонирования необходимо выбрать меню «Файл» — «Клонировать репозиторий».
Создание New Branch
Для создания отдельной ветки проекта откройте раздел Current Branch и нажмите кнопку New Branch.
Пользователь сможет увидеть ветку в интерфейсе GitHub и сделать pull request, чтобы отслеживать изменения.
Безопасность
Настольная и веб-версия Github позволяет провести настройку и повысить уровень безопасности учетной записи пользователя. Весь функционал доступен в разделе «параметры безопасности для хранилища». Стоит рассмотреть более подробно.
Настройка политики безопасности
На главной странице вашего репозитория нажмите:
- «Security» — «Security Policy» — «Start Setup».
- Добавьте информацию о поддерживаемых версиях вашего проекта и о том, какими способами сообщать о возможных уязвимостях.
Управление графиком зависимостей
График зависимостей автоматически создается для всех общедоступных репозиториев, но для частных такой функции не предусмотрено. График идентифицирует все исходящие потоки зависимостей и позволяет определить уязвимости в проекте.
Для установки графика зависимостей нажмите на «Настройки» — «Безопасность и анализ». Напротив графика нажмите «Включить» или «Отключить».
Лицензии
Github лицензирование предусматривает использование двух основных видов лицензии:
- GPL — вид лицензии, который позволяет другим пользователям использовать чужую работу в других проектах с открытым исходным кодом. Однако коммерческие компании не могут этого делать.
- LGPL/Commons/MIT/Apache и т. д. — пользователь отдает свой код для бесплатного использования. Другие могут зарабатывать на этом деньги.
Мы рассмотрели основной функционал облачного сервиса Github и программы для работы с репозиториями Git Bash. Пошагово рассказали о том, как создать полноценный проект в системе контроля версий.
Если вам понравилась статья, то подписывайтесь на мой телеграм канал.