Git: от основ до GitHub
Git — одна из популярнейших систем контроля версий.
Другие популярные системы контроля версий:
- SVN (https://ru.wikipedia.org/wiki/Subversion)
- Mercurial
- TFS (Team Foundation Server)
Система контроля версий (VCS) — Система контроля версий — это система, которая регистрирует все изменения в файлах, а в дальнейшем позволяет вернуться к их более ранним версиям и определить, кем и когда были сделаны конкретные изменения. (https://tagline.ru/version-control-systems-rating/)
Git — распределённая система контроля версий, позволяющая сохранять изменения, внесённые в файлы, которые хранятся в репозитории. Сами изменения сохраняются в виде снимков, называемых коммитами. Они могут размещаться на разных серверах, поэтому вы всегда восстановите код в случае сбоя, а также без проблем откатитесь до любого предыдущего состояния. Кроме того, значительно облегчается взаимодействие с другими разработчиками: несколько человек могут работать над одним репозиторием одновременно, сохраняя свои изменения.
Работа с Git:
- Установка
- Настройка
- Работа с Git репозиторием
- Работа с удалёнными репозиториями
Установка Git
Официальная документация для установки на Windows, Linux, Mac (РУ): https://git-scm.com/book/ru/v2/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-Git
Сначала нужно скачать последнюю версию с официального сайта: https://git-scm.com/download/
Далее нужно установить полученный дистрибутив.
Настройка Git
- имя пользователя:
$ git config —global user.name «comdcomp»; - адрес электронной почты:
$ git config —global user.email programmer@comdcomp.ru;
Самые стандартные настройки это имя пользователя и адрес электронной почты.
Можно настроить и другие параметры, подробнее в официальной документации (РУ) https://git-scm.com/book/ru/v2/%D0%92%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D0%9F%D0%B5%D1%80%D0%B2%D0%BE%D0%BD%D0%B0%D1%87%D0%B0%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F-%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-Git
Посмотреть список всех настроек
$ git config —list
Смена текстового редактора по умолчанию
Иногда на этапе установки пользователь может не заметить настройку текстового редактора и получить проблемы с редактированием текста коммита или открытием текстовых файлов. Если, выбор текстового редактора по умолчанию уже сделан, то можно поменять его, например, установить в качестве текстового редактора по умолчанию Notepad++.
Настройка:
git config —global core.editor «editor —parameters»
Пример:
git config —global core.editor \ «‘C:/Program Files/Notepad++/notepad++.exe’ -multiInst -notabbar -nosession -noPlugin»
Подробнее про смену текстового редактора (RU) https://ru.stackoverflow.com/questions/437331/%D0%97%D0%B0%D0%BC%D0%B5%D0%BD%D0%B0-%D0%B4%D0%B5%D1%84%D0%BE%D0%BB%D1%82%D0%BD%D0%BE%D0%B3%D0%BE-%D1%80%D0%B5%D0%B4%D0%B0%D0%BA%D1%82%D0%BE%D1%80%D0%B0-%D0%BA%D0%BE%D0%B4%D0%B0-%D0%B2-git
Работа с Git репозиторием
Детальное руководство (РУ) https://otus.ru/nest/post/770/
Настройка .gitignore
Общий порядок работы:
- создать через текстовый редактор файл .gitignore в корне репозитория (папка с репозиторием)
- зафиксировать файл через
git add .gitignore
иgit commit
- отправить файл в удалённый репозиторий через
git push
Есть шаблоны файлов .gitignore
для разных сред и для разных проектов — можно найти в google или при создании репозитория на github
выбрать в настройках репозитория.
Хорошая статья на эту тему (РУ) https://devacademy.ru/article/ignorirovanie-faylov-i-katalogov-v-git
Удаленный репозиторий
Для того чтобы хранить код, делиться им и проверять историю изменений, используются специальные сервисы — хостинги, которые предоставляют возможность хранить на своих серверах код — организовывать удалённый репозиторий. Чтобы пользоваться таким сервисом, нужно в нём зарегистрироваться и создать репозиторий, а затем используя Git, синхронизировать локальный и удалённый репозиторий.
Примеры подобных сервисов:
- GitHub
- BitBucket
- Azure DevOps
- Gitlab
- SourceForge
- Gogs
Дальнейшее изучение Git
- Изучить внутренние принципы работы Git: https://habr.com/ru/post/313890/
- Изучить набор статей в базе знаний Atlassian (особенно пригодится, если будете использовать BitBucket) https://www.atlassian.com/ru/git/tutorials/what-is-git
- Игровой путь изучения Git https://learngitbranching.js.org/?locale=ru_RU
- Учебник по Git (РУ) https://git-scm.com/book/ru/v2
- Изучить энциклопедию по Git (EN) https://git.wiki.kernel.org/index.php/Main_Page
- Шпаргалка по Git с краткими пояснениями (РУ) https://habr.com/ru/company/ruvds/blog/599929/
- Ещё одна шпаргалка по всем командам (РУ) https://training.github.com/downloads/ru/github-git-cheat-sheet/
- Стратегии merge (РУ) https://www.atlassian.com/ru/git/tutorials/using-branches/merge-strategy
Сертификация
Не смотря на то, что git является лишь одним из самых распространённых и простых инструментов помощи разработчикам, аналитикам и тестировщикам, начали появляется сертификации по этому инструменту.
Первый экзамен по git от GitHub
Подробнее https://habr.com/ru/news/t/524612/
Описание сертификации (RU) https://habr.com/ru/news/785154
Книга для подготовки к сертификации https://examregistration.github.com/handbook
Статьи по теме
- Тренды на github
- Пример проекта с открытым исходным кодом
- Пример сайта на GitHub Pages
- Импортозамещение GitHub
- Git: как работает merge —no-ff
- Git в Xcode
- Git требует пароль при каждом push