Git для новичков (часть 1)
Git — это консольная утилита, для отслеживания и ведения истории изменения файлов, в вашем проекте. Чаще всего его используют для кода, но можно и для других файлов. Например, для картинок — полезно для дизайнеров.
С помощью Git-a вы можете откатить свой проект до более старой версии, сравнивать, анализировать или сливать свои изменения в репозиторий.
Репозиторием называют хранилище вашего кода и историю его изменений. Git работает локально и все ваши репозитории хранятся в определенных папках на жестком диске.
Так же ваши репозитории можно хранить и в интернете. Обычно для этого используют три сервиса:
Каждая точка сохранения вашего проекта носит название коммит (commit). У каждого commit-a есть hash (уникальный id) и комментарий. Из таких commit-ов собирается ветка. Ветка — это история изменений. У каждой ветки есть свое название. Репозиторий может содержать в себе несколько веток, которые создаются из других веток или вливаются в них.
Как работает
Если посмотреть на картинку, то становиться чуть проще с пониманием. Каждый кружок, это commit. Стрелочки показывают направление, из какого commit сделан следующий. Например C3 сделан из С2 и т. д. Все эти commit находятся в ветке под названием main . Это основная ветка, чаще всего ее называют master . Прямоугольник main* показывает в каком commit мы сейчас находимся, проще говоря указатель.
В итоге получается очень простой граф, состоящий из одной ветки ( main ) и четырех commit. Все это может превратиться в более сложный граф, состоящий из нескольких веток, которые сливаются в одну.
Об этом мы поговорим в следующих статьях. Для начала разберем работу с одной веткой.
Установка
Основой интерфейс для работы с Git-ом является консоль/терминал. Это не совсем удобно, тем более для новичков, поэтому предлагаю поставить дополнительную программу с графическим интерфейсом (кнопками, графиками и т.д.). О них я расскажу чуть позже.
Но для начала, все же установим сам Git.
- Windows. Проходим по этой ссылке, выбираем под вашу ОС (32 или 64 битную), скачиваем и устанавливаем.
- Для Mac OS. Открываем терминал и пишем:
#Если установлен Homebrew brew install git #Если нет, то вводим эту команду. git --version #После этого появится окно, где предложит установить Command Line Tools (CLT). #Соглашаемся и ждем установки. Вместе с CLT установиться и git
- Linux. Открываем терминал и вводим следующую команду.
# Debian или Ubuntu sudo apt install git # CentOS sudo yum install git
Настройка
Вы установили себе Git и можете им пользоваться. Давайте теперь его настроим, чтобы когда вы создавали commit, указывался автор, кто его создал.
Открываем терминал (Linux и MacOS) или консоль (Windows) и вводим следующие команды.
#Установим имя для вашего пользователя #Вместо можно ввести, например, Grisha_Popov #Кавычки оставляем git config --global user.name "" #Теперь установим email. Принцип тот же. git config --global user.email ""
Создание репозитория
Теперь вы готовы к работе с Git локально на компьютере.
Создадим наш первый репозиторий. Для этого пройдите в папку вашего проекта.
#Для Linux и MacOS путь может выглядеть так /Users/UserName/Desktop/MyProject #Для Windows например С://MyProject cd #Инициализация/создание репозитория git init
Теперь Git отслеживает изменения файлов вашего проекта. Но, так как вы только создали репозиторий в нем нет вашего кода. Для этого необходимо создать commit.
#Добавим все файлы проекта в нам будующий commit git add . #Или так git add --all #Если хотим добавить конкретный файл то можно так git add #Теперь создаем commit. Обязательно указываем комментарий. #И не забываем про кавычки git commit -m ""
Отлично. Вы создали свой первый репозиторий и заполнили его первым commit.
Процесс работы с Git
Не стоит после каждого изменения файла делать commit. Чаще всего их создают, когда:
- Создан новый функционал
- Добавлен новый блок на верстке
- Исправлены ошибки по коду
- Вы завершили рабочий день и хотите сохранить код
Это поможет держать вашу ветки в чистоте и порядке. Тем самым, вы будете видеть историю изменений по каждому нововведению в вашем проекте, а не по каждому файлу.
Визуальный интерфейс
Как я и говорил ранее, существуют дополнительные программы для облегчения использования Git. Некоторые текстовые редакторы или полноценные среды разработки уже включают в себя вспомогательный интерфейс для работы с ним.
Но существуют и отдельные программы по работе с Git. Могу посоветовать эти:
Я не буду рассказывать как они работают. Предлагаю разобраться с этим самостоятельно.
Создаем свой первый проект и выкладываем на GitHub
Давайте разберемся как это сделать, с помощью среды разработки Visual Studio Code (VS Code).
Перед началом предлагаю зарегистрироваться на GitHub.
Создайте папку, где будет храниться ваш проект. Если такая папка уже есть, то создавать новую не надо.
После открываем VS Code .
- Установите себе дополнительно анализаторы кода для JavaScript и PHP
- Откройте вашу папку, которую создали ранее
После этого у вас появится вот такой интерфейс
- Здесь будут располагаться все файлы вашего проекта
- Здесь можно работать с Git-ом
- Кнопка для создания нового файла
- Кнопка для создания новой папки
Если ваш проект пустой, как у меня, то создайте новый файл и назовите его index.html . После этого откроется окно редактирование этого файла. Напишите в нем ! и нажмите кнопку Tab . Автоматически должен сгенерироваться скелет пустой HTML страницы. Не забудьте нажать ctrl+s чтобы файл сохранился.
Давайте теперь перейдем во вкладу для работы с Git-ом.
Откроется вот такое окно:
- Кнопка для публикации нашего проекта на GitHub
- После нажатия на кнопку 1 , появится всплывающее окно. Нужно выбрать второй вариант или там где присутствует фраза . public repository
Если вы хотите создать локальный репозиторий и опубликовать код в другой сервис, то необходимо нажать на кнопку Initialize Repository . После этого, вручную выбрать сервис куда публиковать.
После того, как выбрали «Опубликовать на GitHub публичный репозиторий» (пункт 2), программа предложит вам выбрать файлы, которые будут входить в первый commit. Проставляем галочки у всех файлов, если не проставлены и жмем ОК . Вас перекинет на сайт GitHub, где нужно будет подтвердить вход в аккаунт.
Вы создали и опубликовали репозиторий на GitHub.
Теперь сделаем изменения в коде и попробуем их снова опубликовать. Перейдите во вкладку с файлами, отредактируйте какой-нибудь файл, не забудьте нажать crtl+s (Windows) или cmd+s (MacOS), чтобы сохранить файл. Вернитесь обратно во вкладу управления Git.
Если посмотреть на значок вкладки Git, то можно увидеть цифру 1 в синем кружке. Она означает, сколько файлов у нас изменено и незакоммичено. Давайте его закоммитим и опубликуем:
- Кнопка для просмотра изменений в файле. Необязательно нажимать, указал для справки
- Добавляем наш файл для будущего commit
- Пишем комментарий
- Создаем commit
- Отправляем наш commit в GitHub
Поздравляю, вы научились создавать commit и отправлять его в GitHub!
Итог
Это первая вводная статья по утилите Git. Здесь мы рассмотрели:
- Как его устанавливать
- Как его настраивать
- Как инициализировать репозиторий и создать commit через консоль
- Как на примере VS Code, опубликовать свой код на GitHub
Забегая вперед, советую вам погуглить, как работают следующие команды:
git help # справка по всем командам git clone git status git branch git checkout git merge git remote git fetch git push git pull
P.S. Для облегчения обучения, оставлю вам ссылку на бесплатный тренажер по Git.
В телеграмм канале Step by Step , я публикую еще больше материала и провожу обучающие стримы, для всех желающих.
Что такое GitHub
В 2005 году создатель ядра Linux Линус Торвальдс столкнулся с проблемой: с ним над проектом работало много людей, каждый делал свою часть — и надо было управлять добавлением нового кода, тестированием и устранением багов.
Так знаменитый разработчик придумал Git — распределённую систему управления версиями. Её устанавливают на все компьютеры, где ведётся работа над проектом. Система позволяет создавать и развивать ветви проекта, откатываться к предыдущим версиям, клонировать. Подробнее про Git мы писали в отдельной статье.
GitHub — это облачный хостинг репозиториев Git, или папок, где Git отслеживает изменения. Это Google Фото, только не для картинок, а для репозиториев. Но GitHub не только хранилище файлов с кодом. Эта платформа также предлагает безопасную авторизацию по токенам, инструменты тестирования и анализа кода, сервисы деплоя проектов — GitHub Actions.
В GitHub можно подсматривать за чужим кодом в опенсорсных проектах, комментировать, копировать то, что понравилось, предлагать свои решения. Здесь создают личные портфолио проектов. GitHub называют социальной сетью для разработчиков.
Платформа бесплатная, но только для опенсорсных проектов. Если захотите разместить приватный проект, к которому будет доступ только у вас и вашей команды, нужно купить подписку.
Разбираемся с терминами
Репозиторий — папка с вашим проектом, где лежат файлы, иконки программы, разные картинки. В GitHub у каждого репозитория есть страница с описанием проекта.
Ветка (Branch) — копия проекта в рамках одного репозитория. Есть главная ветка проекта, или main. Но любой разработчик может скопировать проект в свою ветку и работать над его частью, не трогая исходный код и не мешая другим разработчикам. Ветки независимы друг от друга, но их можно объединять, мёржить (от англ. merge — слияние), даже если есть разница в коде.
Клонирование — копирование репозитория из GitHub на жёсткий диск. При клонировании на компьютер пишется вся история версий, все ветки. Если кто-то вносит изменения в репозиторий, вы их тоже получите. Простое копирование таких возможностей не даёт.
Коммит — внесение изменений в репозиторий, чтобы их увидели другие разработчики. У каждого коммита есть временная метка и хеш-сумма.
Форк — копирование репозитория, обычно чужого, для продолжения разработки по другому пути. Часто бывает в опенсорсных проектах.
Пул-реквест (pull request) — предложение автору проекта своих улучшений, чтобы он залил их в исходный репозиторий.
Как работать на GitHub
Через браузер — так проще начать изучение GitHub, не надо учить команды для терминала. Так как GitHub — хостинг для репозиториев, первый шаг при погружении в платформу — создание своего репозитория.
На сайте можно выполнять все основные действия с репозиторием: клонировать, форкать, мёржить ветки, просматривать и разрешать конфликты, удалять проекты. Если нужно внести небольшие изменения в проект или вы пользуетесь GitHub редко, сайта достаточно.
Работа с GUI-клиентом GitHub Desktop — следующий уровень погружения в GitHub. Он не требует знания команд для терминала, но позволяет удобно настроить работу с платформой и полноценно заниматься написанием кода в локальной копии репозитория у себя на компьютере.
Клиент позволяет клонировать репозиторий из хостинга себе на компьютер и отправлять локальные репозитории обратно. Он похож на клиент Яндекс Диска: синхронизирует ваши файлы с облаком.
Но только GitHub CLI (Command Line Interface) позволяет использовать все возможности платформы. В Linux (например, в Ubuntu) CLI Git установлен «из коробки». Иногда предустановлен CLI и в MacOS. В Windows для ввода команд можно использовать PowerShell.
Как посмотреть чужие репозитории
Многие ваши задачи кто-то уже решил. Например, Яндекс написал асинхронный фреймворк userver для быстрого создания микросервисов, сервисов и утилит на C++. Почему бы не воспользоваться чужими наработками?
Справа — краткое описание проекта. Видно, что у репозитория 15 веток, в ветке master 3801 коммит, 18 пул-реквестов, последний релиз был вчера. У проекта лицензия Apache-2.0.
На что обращать внимание при поиске нужных решений в других проектах:
- Описание на главной странице под списком файлов.
- Лицензия проекта — GPLv3 или Apache 2.0. В ней указано, на каких условиях вы можете его использовать.
- Популярность и дата последнего обновления. В редких случаях может подойти инструмент, который написан десять лет назад, но чаще нужен проект, который поддерживается автором или сообществом разработчиков. На это указывает частота обновлений, количество и содержание коммитов, форков. Посмотрите также на звёздочки — это некий аналог лайков и репостов.
Как оформить свой профиль на GitHub
Разработчики используют аккаунт GitHub как портфолио. Чтобы он привлекал работодателей, важно правильно его оформить. Вот несколько советов:
- Используйте в профиле свои реальные имя и фамилию и поставьте качественную фотографию. Но личную электронную почту лучше не публиковать, чтобы не получать много спама.
- Размещайте в открытом доступе только те репозитории, что вы хотите показать потенциальному работодателю.
- Описывайте каждый проект как можно более точно и подробно, используя файл Readme.md.
- Посмотрите во вкладке Trending, как оформлены профили самых трендовых разработчиков GitHub, и пользуйтесь лучшими практиками.
Материалы для погружения в GitHub
- Изучите официальную документацию GitHub. Она есть на русском языке, в ней достаточно подробно расписаны шаги по изучению этого инструмента.
- Почитайте статьи про GitHub на Хабре, например «Работаем с Git: первые шаги в GitHub», «Как начать работать с GitHub: быстрый старт».
- Посмотрите видеоуроки по Git и GitHub от ITDoctor или «Базовый курс по Git» от Devcolibri.
GitHub: краткий обзор для новичков
Разработчики программ используют в работе различные платформы для обмена исходным кодом, его хранения и распространения. Одной из таких платформ является GitHub. Она настолько популярна, что ее мощностями пользуются даже такие «монстры», как Microsoft и RedHat. Инструментарий платформы включает возможности просмотра кода, а также его распространения с документацией и релизами.
Веб-сервис GitHub востребован для хостинга IT-проектов и совместной разработки. Разработчики системы называют ее «социальной сетью» для программистов. Здесь они объединяют репозитории, комментируют примеры «чужого» кода и используют платформу в качестве облачного хранилища с возможностью быстрой передачи заказчику.
Создание аккаунта в Github
Первый шаг к использованию сервиса GitHub заключается в регистрации нового пользователя. В процедуре нет ничего сложного – достаточно зайти на официальный сайт https://github.com/ и создать новую учетную запись. Система запросит рабочую электронную почту.
Пароль вводится на выбор пользователя, но с учетом правил. Так, рекомендуется комбинация размером в 15 символов или 8, но с использованием хотя бы одной цифры и строчной буквы. Имя пользователя, как и email, проверяется на занятость, и придется выбирать тот, с которым платформа позволит продолжать регистрацию.
Далее нужно указать, хочется ли получать новости об обновлениях продуктов и самой системы. Последним шагом становится подтверждение – пользователю предлагается собрать паззл, после чего станет активной кнопка «Зарегистрироваться».
Вход на платформу будет открыт только после подтверждения электронной почты, поэтому зайти анонимно не получится. Это своеобразная защита сервера от многочисленных ботов и гарантия для пользователей, что они будут общаться с реальными людьми. Теперь можно приступать к управлению настройками внутри личного кабинета.
Комьюнити теперь в Телеграм
Подпишитесь и будьте в курсе последних IT-новостей
Создание репозитория
Важно отметить, что сервис англоязычный, и пользоваться им без знания языка получится только при использовании обновленных версий браузеров типа Google Chrome, где есть встроенные функции по переводу страниц. В любом случае работа начинается с создания собственного репозитория – в бесплатном режиме доступны публичные, частные откроются только при активации платного тарифа.
- Нажать на кнопку «Start a project».
- Ввести название и описание репозитория.
- Поставить галочку на «Initialize this repository with a README».
- Выбрать нужный тип лицензии и нажать на кнопку «Create project».
Тип лицензии (приватная или публичная) допускается заменить после, в процессе использования платформы. Единственная настройка, которую пользователи делают сразу, – это создание нескольких веток для размещения разных проектов. Например, для тестового кода и финальных релизов, чтобы не путать их при разработке и общении с другими кодерами.
Подобный подход часто используют создатели продуктов, которыми пользуются «массы». Им передается ссылка на проверенные стабильные версии, в то время как команда продолжает работу над таким же комплектом файлов без опасения нарушить функциональность системы в целом. При использовании платформы следует ориентироваться на отметку «Branch».
Данная отметка обозначает текущую ветку. Создание новой инициируется просто – достаточно в списке начать набирать еще несуществующее название, и система выдаст сообщение «Create branch». Сразу после этого пользователь перекидывается в новую ветку (это стоит учитывать при работе, чтобы случайно не начать редактирование «не тех файлов»).
Изменение файлов и коммиты
Корректировка файлов на GitHub выполняется при помощи коммитов. Это непосредственно само исправление и краткое описание изменений. Такой подход позволяет «внешним» пользователям ориентироваться в нововведениях кода и упрощает контроль командной работы, когда один и тот же файл может редактироваться разными исполнителями.
Система сохранения информации о корректировках удобна, когда они вносятся в различные участки кода, но связаны с определенной задачей. Фактически текстовый файл с описанием «связывает» разрозненные изменения и объясняет непосвященному программисту их суть, назначение. Чтобы запустить редактирование README, нужно в правой панели нажать на «кисточку».
После этого откроется текстовый редактор, где вносятся исправления. По завершении заполняется поле «Commit» внизу страницы (кратко, что изменилось) и нажимается кнопка «Commit changes». Сохраненные корректировки будут внесены в текущую (активную) ветку проекта, поэтому перед их внесением следует убедиться в правильном выборе.
Создание запросов слияния (Pull Request) в Github
При подключении к работе сторонних специалистов может понадобиться функция запроса слияния (Pull Request). Инструмент для работы в таком формате называется DIFF. Он подчеркивает любые «чужие» изменения, чтобы владелец программы сразу видел, где код писал не он. Пометки будут доступны только после создания коммита.
- Открыть вкладку «Pull Request».
- Нажать на кнопку «Create Pull Request».
- Выбрать ветку, которую следует слить с основной.
- Просмотреть внесенные кодером изменения.
После изучения информации созданный запрос на слияние подтверждается нажатием «Merge Pull Request». Новый код будет импортирован в основную ветку, а созданная сторонним исполнителем может спокойно удаляться.
Отчеты об ошибках
Платформа GitHub используется не только для совместной разработки, а еще и для получения обратной связи с пользователями продуктов. Так, на вкладке «Issue» любой «тестировщик» может оставить сообщение о проблемах, с которыми ему пришлось столкнуться при использовании ПО. Чтобы сделать это, нужно нажать кнопку «New issue».
После этого вносится заголовок и текст сообщения. «Проблема» отправляется нажатием на кнопку «Create new issue». Владелец ветки получает уведомления в личном кабинете или на электронную почту, указанную при регистрации.
Заключение
Финалом разработки обычно становится выпуск определенного релиза программного продукта. Это отражается на вкладке «Releases». Здесь следует нажать на кнопку «Create New Release», указать номер версии в поле «Tag Version», внести ее название и небольшое описание. Здесь же прикрепляются архивы с компилированными файлами.
Остается нажать на «Create Release» и убедиться в публикации релиза. Ссылки на исходный код в tar.gz и zip создаются автоматически. Остальные файлы понадобится добавлять вручную.
При подготовке материала использовались источники:
https://habr.com/ru/articles/541258/
https://academy.yandex.ru/journal/chto-takoe-github
https://timeweb.com/ru/community/articles/kak-polzovatsya-github