HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-21
1 <p><a>#статьи</a></p>
1 <p><a>#статьи</a></p>
2 <ul><li>16 май 2024</li>
2 <ul><li>16 май 2024</li>
3 <li>0</li>
3 <li>0</li>
4 </ul><p>Команды разработчиков пользуются системой контроля версий. Чаще всего это Git. Разбираемся, что это значит, зачем нужно и как устроено.</p>
4 </ul><p>Команды разработчиков пользуются системой контроля версий. Чаще всего это Git. Разбираемся, что это значит, зачем нужно и как устроено.</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
5 <p>Иллюстрация: Оля Ежак для Skillbox Media</p>
6 <p>Автор статей о программировании. Изучает Python, разбирает сложные термины и объясняет их на пальцах новичкам. Если что-то непонятно - возможно, вы ещё не прочли его следующую публикацию.</p>
6 <p>Автор статей о программировании. Изучает Python, разбирает сложные термины и объясняет их на пальцах новичкам. Если что-то непонятно - возможно, вы ещё не прочли его следующую публикацию.</p>
7 <p>Git - это система для управления версиями исходного кода программ. В статье мы познакомимся с её основными возможностями, покажем отличие от GitHub и объясним, зачем Git новичку. Ещё вы узнаете, с чего начать обучение и почему не стоит тратить время на альтернативные программы.</p>
7 <p>Git - это система для управления версиями исходного кода программ. В статье мы познакомимся с её основными возможностями, покажем отличие от GitHub и объясним, зачем Git новичку. Ещё вы узнаете, с чего начать обучение и почему не стоит тратить время на альтернативные программы.</p>
8 <p><strong>Содержание</strong></p>
8 <p><strong>Содержание</strong></p>
9 <ul><li><a>Что такое Git</a></li>
9 <ul><li><a>Что такое Git</a></li>
10 </ul><ul><li><a>Это система коммитов</a></li>
10 </ul><ul><li><a>Это система коммитов</a></li>
11 <li><a>Это комплекс связанных веток</a></li>
11 <li><a>Это комплекс связанных веток</a></li>
12 <li><a>Это инструмент совместного создания кода</a></li>
12 <li><a>Это инструмент совместного создания кода</a></li>
13 </ul><ul><li><a>Как работает Git</a></li>
13 </ul><ul><li><a>Как работает Git</a></li>
14 <li><a>Чем Git отличается от GitHub</a></li>
14 <li><a>Чем Git отличается от GitHub</a></li>
15 <li><a>Зачем новичку учить Git</a></li>
15 <li><a>Зачем новичку учить Git</a></li>
16 <li><a>С чего начать: 3 шага, чтобы освоить Git</a></li>
16 <li><a>С чего начать: 3 шага, чтобы освоить Git</a></li>
17 </ul><ul><li><a>Установка</a></li>
17 </ul><ul><li><a>Установка</a></li>
18 <li><a>Настройка</a></li>
18 <li><a>Настройка</a></li>
19 <li><a>Создание репозитория</a></li>
19 <li><a>Создание репозитория</a></li>
20 </ul><ul><li><a>Что дальше</a></li>
20 </ul><ul><li><a>Что дальше</a></li>
21 </ul><p>Представьте себя в команде разработчиков. Вы скачиваете на компьютер копию проекта и пишете код. Так же поступают и остальные разработчики. Через некоторое время всей команде нужно объединять код и обмениваться друг с другом изменениями. Вот за это отвечает программа Git и сервис GitHub.</p>
21 </ul><p>Представьте себя в команде разработчиков. Вы скачиваете на компьютер копию проекта и пишете код. Так же поступают и остальные разработчики. Через некоторое время всей команде нужно объединять код и обмениваться друг с другом изменениями. Вот за это отвечает программа Git и сервис GitHub.</p>
22 <p>В этом разделе вы познакомитесь с основными возможностями, которые предоставляет Git. Это теория. В последнем разделе мы добавим инструкцию, по которой вы сможете установить Git к себе на компьютер.</p>
22 <p>В этом разделе вы познакомитесь с основными возможностями, которые предоставляет Git. Это теория. В последнем разделе мы добавим инструкцию, по которой вы сможете установить Git к себе на компьютер.</p>
23 <p>Представьте ситуацию: геймер доходит до финала, проигрывает и возвращается к началу уровня - попадает в ближайшую контрольную точку игры, где разработчики разрешили сохраниться. Если мы уберём контрольные точки, после каждого проигрыша придётся начинать игру заново.</p>
23 <p>Представьте ситуацию: геймер доходит до финала, проигрывает и возвращается к началу уровня - попадает в ближайшую контрольную точку игры, где разработчики разрешили сохраниться. Если мы уберём контрольные точки, после каждого проигрыша придётся начинать игру заново.</p>
24 <p>В программировании за сохранение кода в контрольных точках отвечает система контроля версий - специальная технология, которую можно подключить к любому проекту. Система контроля версий страхует от ошибок и возвращает код в то состояние, когда всё работало.</p>
24 <p>В программировании за сохранение кода в контрольных точках отвечает система контроля версий - специальная технология, которую можно подключить к любому проекту. Система контроля версий страхует от ошибок и возвращает код в то состояние, когда всё работало.</p>
25 <p>Контрольные точки называются коммитами. Один коммит - это пакет изменений, хранящий информацию с добавленными, отредактированными или удалёнными файлами кода. В один коммит принято добавлять не более десяти изменений - так получается длинная история версий, которая позволяет в случае ошибки откатиться с минимальной потерей работоспособного кода.</p>
25 <p>Контрольные точки называются коммитами. Один коммит - это пакет изменений, хранящий информацию с добавленными, отредактированными или удалёнными файлами кода. В один коммит принято добавлять не более десяти изменений - так получается длинная история версий, которая позволяет в случае ошибки откатиться с минимальной потерей работоспособного кода.</p>
26 Система контроля версий - это хранилище с файлами всех изменений проекта. Оно позволяет вернуть проект в любое предыдущее состояние, когда программа стабильно работала<em>Инфографика: Skillbox Media</em><p>Коммиты располагаются на master-ветке - основной версии проекта, которая после завершения работы превратится в продукт.</p>
26 Система контроля версий - это хранилище с файлами всех изменений проекта. Оно позволяет вернуть проект в любое предыдущее состояние, когда программа стабильно работала<em>Инфографика: Skillbox Media</em><p>Коммиты располагаются на master-ветке - основной версии проекта, которая после завершения работы превратится в продукт.</p>
27 <p>Система контроля версий позволяет создавать ответвления от master-ветки и экспериментировать с проектом, не мешая другим участника команды.</p>
27 <p>Система контроля версий позволяет создавать ответвления от master-ветки и экспериментировать с проектом, не мешая другим участника команды.</p>
28 <p>Возьмём предыдущую схему, где мы обнаружили ошибку и откатились на один коммит назад. Чтобы поправить код, создадим несколько дополнительных веток и в каждой протестируем разные варианты решения проблемы. Когда решение найдено, ветку с правильным кодом переносим в master-ветку и сохраняем коммит. Лишние ветки оставляем или удаляем, поскольку они не влияют на проект и скрыты от других разработчиков - это ваш личный черновик.</p>
28 <p>Возьмём предыдущую схему, где мы обнаружили ошибку и откатились на один коммит назад. Чтобы поправить код, создадим несколько дополнительных веток и в каждой протестируем разные варианты решения проблемы. Когда решение найдено, ветку с правильным кодом переносим в master-ветку и сохраняем коммит. Лишние ветки оставляем или удаляем, поскольку они не влияют на проект и скрыты от других разработчиков - это ваш личный черновик.</p>
29 Система контроля версий помогает разработчикам параллельно работать над проектом, не мешать друг другу и добавлять в master-ветку только качественный код<em>Инфографика: Skillbox Media</em><p>Часто бывает так: разработчики отделяются от master-ветки и работают над частью проекта самостоятельно - например, чтобы протестировать дополнительные функции. Но не могут продолжить, пока кто-то из команды не допишет код.</p>
29 Система контроля версий помогает разработчикам параллельно работать над проектом, не мешать друг другу и добавлять в master-ветку только качественный код<em>Инфографика: Skillbox Media</em><p>Часто бывает так: разработчики отделяются от master-ветки и работают над частью проекта самостоятельно - например, чтобы протестировать дополнительные функции. Но не могут продолжить, пока кто-то из команды не допишет код.</p>
30 <p>Система контроля версий позволяет не ждать обновления master-ветки и разрешает всем участникам команды свободно перемещаться между ветками других разработчиков для копирования нужных фрагментов кода.</p>
30 <p>Система контроля версий позволяет не ждать обновления master-ветки и разрешает всем участникам команды свободно перемещаться между ветками других разработчиков для копирования нужных фрагментов кода.</p>
31 <p>Бывают и обратные ситуации, когда несколько разработчиков одновременно дописывают код, заливают его в master-ветку и сталкиваются с конфликтом - один файл получает несколько несогласованных изменений. В этом случае Git попробует автоматически исправить ошибки. Если не получится, разработчики это увидят и смогут поправить код вручную.</p>
31 <p>Бывают и обратные ситуации, когда несколько разработчиков одновременно дописывают код, заливают его в master-ветку и сталкиваются с конфликтом - один файл получает несколько несогласованных изменений. В этом случае Git попробует автоматически исправить ошибки. Если не получится, разработчики это увидят и смогут поправить код вручную.</p>
32 Система контроля версий открывает доступ к веткам других разработчиков<em>Инфографика: Skillbox Media</em><p>Системы контроля версий бывают локальными, централизованными или распределёнными.</p>
32 Система контроля версий открывает доступ к веткам других разработчиков<em>Инфографика: Skillbox Media</em><p>Системы контроля версий бывают локальными, централизованными или распределёнными.</p>
33 <ul><li>Локальная система хранит файлы на одном устройстве, централизованная использует общий сервер, а распределённая - общее облачное хранилище и локальные устройства участников команды. В локальной системе удобно работать с большими проектами, но сложно взаимодействовать с удалённой командой.</li>
33 <ul><li>Локальная система хранит файлы на одном устройстве, централизованная использует общий сервер, а распределённая - общее облачное хранилище и локальные устройства участников команды. В локальной системе удобно работать с большими проектами, но сложно взаимодействовать с удалённой командой.</li>
34 <li>В централизованной системе налажена удалённая работа, но всё привязано к одному серверу. Любой сбой или взлом может повредить файлы проекта.</li>
34 <li>В централизованной системе налажена удалённая работа, но всё привязано к одному серверу. Любой сбой или взлом может повредить файлы проекта.</li>
35 <li>В распределённой системе налажена удалённая работа. Если с файлами основного репозитория что-то случится - проект легко восстановить из копии любого участника команды.</li>
35 <li>В распределённой системе налажена удалённая работа. Если с файлами основного репозитория что-то случится - проект легко восстановить из копии любого участника команды.</li>
36 </ul><p>Из-за удобства и гибкости распределённая система версий Git считается современным форматом. Это стандарт для большинства IT-команд.</p>
36 </ul><p>Из-за удобства и гибкости распределённая система версий Git считается современным форматом. Это стандарт для большинства IT-команд.</p>
37 Распределённая система контроля версий - это когда у каждого разработчика есть клон проекта<em>Инфографика: Skillbox Media</em>Распределённая система контроля версий - это когда из одной копии можно восстановить проект<em>Инфографика: Skillbox Media</em><p>Git - это программа, которую нужно установить и подключить к проекту для управления системой контроля версий. GitHub - это сайт-хранилище для историй версий проектов: вы подключаете Git, регистрируетесь на GitHub, создаёте онлайн-репозиторий и переносите файлы из Git на GitHub.</p>
37 Распределённая система контроля версий - это когда у каждого разработчика есть клон проекта<em>Инфографика: Skillbox Media</em>Распределённая система контроля версий - это когда из одной копии можно восстановить проект<em>Инфографика: Skillbox Media</em><p>Git - это программа, которую нужно установить и подключить к проекту для управления системой контроля версий. GitHub - это сайт-хранилище для историй версий проектов: вы подключаете Git, регистрируетесь на GitHub, создаёте онлайн-репозиторий и переносите файлы из Git на GitHub.</p>
38 <p>Git - это самая популярная система контроля версий, а GitHub - онлайн-хранилище кода. Git и GitHub настроены на взаимодействие и поэтому часто используются как единый механизм работы с проектом.</p>
38 <p>Git - это самая популярная система контроля версий, а GitHub - онлайн-хранилище кода. Git и GitHub настроены на взаимодействие и поэтому часто используются как единый механизм работы с проектом.</p>
39 <p>Если нужно, Git можно заменить альтернативной программой контроля версий, а GitHub - другим онлайн-хранилищем кода. Большинству работодателей это не нужно, поскольку знакомство с другими сервисами отнимает время и неудобно многим разработчикам.</p>
39 <p>Если нужно, Git можно заменить альтернативной программой контроля версий, а GitHub - другим онлайн-хранилищем кода. Большинству работодателей это не нужно, поскольку знакомство с другими сервисами отнимает время и неудобно многим разработчикам.</p>
40 Git - это самая популярная распределённая система контроля версий<em>Скриншот:<a>Stack Overflow</a>/ Skillbox Media</em>Git - это самое популярное онлайн-хранилище кода<em>Скриншот:<a>Stack Overflow</a>/ Skillbox Media</em><p>Git используется в большинстве компаний, где над проектом работают хотя бы два разработчика:</p>
40 Git - это самая популярная распределённая система контроля версий<em>Скриншот:<a>Stack Overflow</a>/ Skillbox Media</em>Git - это самое популярное онлайн-хранилище кода<em>Скриншот:<a>Stack Overflow</a>/ Skillbox Media</em><p>Git используется в большинстве компаний, где над проектом работают хотя бы два разработчика:</p>
41 <ul><li>Новый человек приходит в компанию и клонирует репозиторий проекта на ПК.</li>
41 <ul><li>Новый человек приходит в компанию и клонирует репозиторий проекта на ПК.</li>
42 <li>Получает задачу, создаёт новую ветку и пишет код.</li>
42 <li>Получает задачу, создаёт новую ветку и пишет код.</li>
43 <li>Когда всё готово - отправляет запрос на добавление кода в master-ветку.</li>
43 <li>Когда всё готово - отправляет запрос на добавление кода в master-ветку.</li>
44 <li>Другие разработчики смотрят код, оставляют комментарии и указывают на ошибки.</li>
44 <li>Другие разработчики смотрят код, оставляют комментарии и указывают на ошибки.</li>
45 <li>Новичок дорабатывает код, обновляет master-ветку и переходит к следующей задаче.</li>
45 <li>Новичок дорабатывает код, обновляет master-ветку и переходит к следующей задаче.</li>
46 </ul><p>Это общая схема того, как проходит командная работа в проекте. В ней не учтены правила использования Git, которые каждая команда пишет под себя. Например, у каждой команды свой порядок проверки кода и свои критерии его готовности для добавления в master-ветку.</p>
46 </ul><p>Это общая схема того, как проходит командная работа в проекте. В ней не учтены правила использования Git, которые каждая команда пишет под себя. Например, у каждой команды свой порядок проверки кода и свои критерии его готовности для добавления в master-ветку.</p>
47 <p>Знание Git и знание правил использования Git в команде - это два разных навыка, которые можно сравнить с умением ездить на автомобиле и знанием правил дорожного движения. Если умеете управлять автомобилем - вам проще сконцентрироваться и быстро выучить правила. С Git аналогичная ситуация: если вы умеете управлять системой контроля версий, то можете сразу влиться в проект, не отвлекаться на второстепенные вещи и сосредоточиться на качестве кода.</p>
47 <p>Знание Git и знание правил использования Git в команде - это два разных навыка, которые можно сравнить с умением ездить на автомобиле и знанием правил дорожного движения. Если умеете управлять автомобилем - вам проще сконцентрироваться и быстро выучить правила. С Git аналогичная ситуация: если вы умеете управлять системой контроля версий, то можете сразу влиться в проект, не отвлекаться на второстепенные вещи и сосредоточиться на качестве кода.</p>
48 <p>Это практический раздел. Мы установим Git на компьютер, настроим его для работы, создадим локальный репозиторий и загрузим в него первый файл.</p>
48 <p>Это практический раздел. Мы установим Git на компьютер, настроим его для работы, создадим локальный репозиторий и загрузим в него первый файл.</p>
49 <p>Перейдите на сайт<a>git-scm.com</a>и выберите способ установки Git под свою операционную систему. Для Windows можно скачать загрузочный файл и поставить Git как обычную программу. Базовые настройки можно не менять.</p>
49 <p>Перейдите на сайт<a>git-scm.com</a>и выберите способ установки Git под свою операционную систему. Для Windows можно скачать загрузочный файл и поставить Git как обычную программу. Базовые настройки можно не менять.</p>
50 <p>Git на macOS и Linux удобно устанавливать через программу "Терминал". Если у вас Linux - узнайте название своего дистрибутива. Если macOS - поставьте менеджер пакетов<a>Homebrew</a>. После введите команду загрузки.</p>
50 <p>Git на macOS и Linux удобно устанавливать через программу "Терминал". Если у вас Linux - узнайте название своего дистрибутива. Если macOS - поставьте менеджер пакетов<a>Homebrew</a>. После введите команду загрузки.</p>
51 # Устанавливаем Git на macOS $ brew install git # Устанавливаем Git на популярные Linux-дистрибутивы # Fedora yum install git # Debian/Ubuntu apt-get install git # OpenSUSE zypper install git<p>Если у вас macOS и Linux - оставайтесь в "Терминале". Если Windows - откройте программу Git Bash, которая установится вместе с системой Git.</p>
51 # Устанавливаем Git на macOS $ brew install git # Устанавливаем Git на популярные Linux-дистрибутивы # Fedora yum install git # Debian/Ubuntu apt-get install git # OpenSUSE zypper install git<p>Если у вас macOS и Linux - оставайтесь в "Терминале". Если Windows - откройте программу Git Bash, которая установится вместе с системой Git.</p>
52 <p>Введите в консоли команду и проверьте установку Git. Вы должны увидеть номер версии, которая загружена в вашу систему. Иногда вместо номера версии выводится сообщение об ошибке: Unsupported command: git. Это означает, что Git установить не получилось и процесс нужно повторить.</p>
52 <p>Введите в консоли команду и проверьте установку Git. Вы должны увидеть номер версии, которая загружена в вашу систему. Иногда вместо номера версии выводится сообщение об ошибке: Unsupported command: git. Это означает, что Git установить не получилось и процесс нужно повторить.</p>
53 # Команда для проверки установки Git git --versionУстанавливаем Git на Windows и через Git Bash проверяем номер актуальной версии<em>Скриншот:<a>Git</a>/ Skillbox Media</em><p>После установки Git нужно провести его начальную настройку. Для этого вам нужно указать свои имя, фамилию и почту. Эти данные видны в коммитах, и по ним другие разработчики будут знать, когда вы вносили изменения в проект.</p>
53 # Команда для проверки установки Git git --versionУстанавливаем Git на Windows и через Git Bash проверяем номер актуальной версии<em>Скриншот:<a>Git</a>/ Skillbox Media</em><p>После установки Git нужно провести его начальную настройку. Для этого вам нужно указать свои имя, фамилию и почту. Эти данные видны в коммитах, и по ним другие разработчики будут знать, когда вы вносили изменения в проект.</p>
54 # Команда для указания имени и фамилии git config --global user.name "Name Surname" # Команда для указания электронной почты git config --global user.email "your@email" # Команда для проверки настроек git config --listНастраиваем тестовую конфигурацию Git на Windows через Git Bash<em>Скриншот:<a>Git Bash</a>/ Skillbox Media</em><p>Когда Git настроен, вы можете создать проект. Для этого выполним несколько команд: создадим новую папку, зайдём в неё и инициализируем репозиторий.</p>
54 # Команда для указания имени и фамилии git config --global user.name "Name Surname" # Команда для указания электронной почты git config --global user.email "your@email" # Команда для проверки настроек git config --listНастраиваем тестовую конфигурацию Git на Windows через Git Bash<em>Скриншот:<a>Git Bash</a>/ Skillbox Media</em><p>Когда Git настроен, вы можете создать проект. Для этого выполним несколько команд: создадим новую папку, зайдём в неё и инициализируем репозиторий.</p>
55 <p>Если репозиторий успешно инициализирован, то у вас в проекте появится скрытая папка .git. В этой папке система Git будет хранить метаинформацию, которая необходима для работы. Это ваш локальный репозиторий.</p>
55 <p>Если репозиторий успешно инициализирован, то у вас в проекте появится скрытая папка .git. В этой папке система Git будет хранить метаинформацию, которая необходима для работы. Это ваш локальный репозиторий.</p>
56 # Создаём новую папку mkdir название_проекта # Переходим в созданную папку cd название_проекта # Инициализируем локальный репозиторий git init # Проверяем список открытых и скрытых файлов и папок ls -aСоздаём репозиторий в системе Windows через Git Bash<em>Скриншот:<a>Git Bash</a>/ Skillbox Media</em><p>Проверим работу репозитория. Для этого создадим новый файл и выполним коммит - сохраним его в нашем локальном репозитории. Нужные команды:</p>
56 # Создаём новую папку mkdir название_проекта # Переходим в созданную папку cd название_проекта # Инициализируем локальный репозиторий git init # Проверяем список открытых и скрытых файлов и папок ls -aСоздаём репозиторий в системе Windows через Git Bash<em>Скриншот:<a>Git Bash</a>/ Skillbox Media</em><p>Проверим работу репозитория. Для этого создадим новый файл и выполним коммит - сохраним его в нашем локальном репозитории. Нужные команды:</p>
57 # Создаём текстовый файл echo "# Test message" &gt;&gt; test.txt # Подготавливаем текстовый файл к коммиту git add . # Делаем коммит и сохраняем файл в репозитории git commit -m "My first commit"Сохраняем файл в локальном репозитории через Git Bash<em>Скриншот:<a>Git Bash</a>/ Skillbox Media</em><p>Введём команду git log и посмотрим в журнал. Перед вами должна появиться информация о сделанном коммите. Вы увидите дату внесения изменений, имя и фамилию автора, почту, текст сообщения и <a>хеш</a>коммита. Теперь если вы продолжите разработку, то в любой момент сможете вернуться и посмотреть, в каком состоянии находился проект на этапе первого коммита.</p>
57 # Создаём текстовый файл echo "# Test message" &gt;&gt; test.txt # Подготавливаем текстовый файл к коммиту git add . # Делаем коммит и сохраняем файл в репозитории git commit -m "My first commit"Сохраняем файл в локальном репозитории через Git Bash<em>Скриншот:<a>Git Bash</a>/ Skillbox Media</em><p>Введём команду git log и посмотрим в журнал. Перед вами должна появиться информация о сделанном коммите. Вы увидите дату внесения изменений, имя и фамилию автора, почту, текст сообщения и <a>хеш</a>коммита. Теперь если вы продолжите разработку, то в любой момент сможете вернуться и посмотреть, в каком состоянии находился проект на этапе первого коммита.</p>
58 Список коммитов в локальном репозитории в программе Git Bash<em>Скриншот:<a>Git Bash</a>/ Skillbox Media</em><p>Вы познакомились с системой Git, установили её на компьютер, создали свой локальный репозиторий и научились через консоль загружать в него файлы.</p>
58 Список коммитов в локальном репозитории в программе Git Bash<em>Скриншот:<a>Git Bash</a>/ Skillbox Media</em><p>Вы познакомились с системой Git, установили её на компьютер, создали свой локальный репозиторий и научились через консоль загружать в него файлы.</p>
59 <p>Если вы готовы к следующему шагу, то мы рекомендуем изучить основные команды для взаимодействия с Git и GitHub. Они позволят вам управлять рабочим процессом, ветками и удалённым репозиторием. Об этих командах мы написали статью и дополнили её практическим вебинаром с экспертом.</p>
59 <p>Если вы готовы к следующему шагу, то мы рекомендуем изучить основные команды для взаимодействия с Git и GitHub. Они позволят вам управлять рабочим процессом, ветками и удалённым репозиторием. Об этих командах мы написали статью и дополнили её практическим вебинаром с экспертом.</p>
60 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>
60 <a><b>Бесплатный курс по Python ➞</b>Мини-курс для новичков и для опытных кодеров. 4 крутых проекта в портфолио, живое общение со спикером. Кликните и узнайте, чему можно научиться на курсе. Смотреть программу</a>