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

Если это звучит знакомо, то вы наверняка проходили стадию папок с названиями Проект_финал, Проект_финал_2, Проект_финал_точно_последний и Проект_СДАВАТЬ_ЭТОТ.
Через неделю вы сами не помните, какой из них рабочий и чем они вообще отличаются друг от друга.

А теперь представьте, что вы работаете не один: отправляете файл коллеге, он что-то меняет и отправляет обратно, но вы тем временем тоже внесли правки.

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

Но сейчас есть способ схлопнуть весь этот хаос.
И тут появляется Git.


Что это вообще такое?
По сути, это машина времени для ваших файлов.

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

Не один файл, а всё целиком: каждая папка, каждая строчка кода, каждая запятая.

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

Накосячили - откатились на вчера.
Хотите посмотреть, что изменилось за месяц -Git покажет: вот эти строчки добавили, вот эти удалили, вот тут поменяли.
И всё это с датами и подписями: кто менял, когда и зачем.


Три слова, которые нужно запомнить

Репозиторий это ваш проект под присмотром Git.
По сути, обычная папка с файлами, но с особенностью: она помнит всю свою историю с момента создания.

Коммит тот самый снимок проекта.
Когда вы говорите Git «запомни, как всё выглядит сейчас», вы создаёте коммит, к которому принято добавлять короткий комментарий вроде «Добавил новую кнопку» или «Исправил ошибку в расчётах» потом по этим комментариям легко найти нужный момент в истории.
Обязательно надо оставлять адекватные комментарии, а не в духе «вычистил всю хрень с проекта».

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


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

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

С Git вы просто открываете историю, находите коммит с подписью «Перед редизайном», нажимаете «Вернуться» и проект снова выглядит как прежде.

При этом ваши эксперименты никуда не делись: они лежат в истории и вполне могут пригодиться в будущем.


Git и GitHub - это разное
Здесь часто возникает путаница, поэтому давайте сразу разберёмся.

Git - это программа, которая работает локально на вашем компьютере, ей даже не нужен интернет.

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

Вы вполне можете пользоваться Git без GitHub - для личных проектов этого более чем достаточно. Но если вы работаете в команде или хотите иметь резервную копию в облаке, GitHub и его аналоги вроде GitLab или Bitbucket становятся основными инструментами.


Порог входа
Git - мощная штука, и у этой мощи есть цена: поначалу придётся потратить время, чтобы разобраться.

Первое время будет непривычно, команды в консоли выглядят пугающе (git commit -m "Мой первый коммит"), но на самом деле базовых команд всего штук пять, и они запоминаются буквально за пару дней.

К тому же существуют программы с привычными кнопками и окошками типа GitHub Desktop, Sourcetree, GitKraken - для тех, кто не любит работать через консоль.

Главное начать: создать первый репозиторий, сделать первый коммит. Уже через неделю вы будете удивляться, как вообще раньше работали без этого.

Как вам материалы?
Об авторе:
  • Александр Замахов
    Senior product manager / CPO
    Автор подборки и основатель проекта
    Следите за выходом новых материалов в телеграме и linkedin