|
@@ -0,0 +1,75 @@
|
|
|
+# Git: Инструмент для управления версиями
|
|
|
+
|
|
|
+Git — это инструмент для управления версиями исходного кода программного обеспечения. В данной статье мы рассмотрим его основные возможности, объясним различия между Git и GitHub, а также расскажем, почему новичкам стоит изучить Git. Кроме того, вы узнаете, с чего начать свое обучение, и почему не следует тратить время на альтернативные программы.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## Что такое Git
|
|
|
+
|
|
|
+Представьте, что вы работаете в команде разработчиков. Вы загружаете на свой компьютер копию проекта и начинаете писать код, как и остальные члены команды. Вскоре наступает момент, когда всем нужно объединить свои изменения и обменяться ими. Именно для этого нужны Git и платформа GitHub.
|
|
|
+
|
|
|
+
|
|
|
+### Система коммитов
|
|
|
+
|
|
|
+Контрольные точки в Git называются коммитами. Один коммит — это набор изменений, который содержит информацию о добавленных, измененных или удаленных файлах в коде. Рекомендуется сохранять в одном коммите не более десяти изменений, чтобы не усложнять историю версий и облегчить откат к предыдущей версии в случае необходимости. Коммиты располагаются на главной ветке, обычно называемой `master`, представляющей собой основную версию проекта, которая в будущем станет итоговым продуктом.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## Как работает Git
|
|
|
+
|
|
|
+Системы контроля версий могут быть локальными, централизованными или распределенными.
|
|
|
+
|
|
|
+**Локальные системы** хранят файлы на одном устройстве.
|
|
|
+
|
|
|
+**Централизованные системы** используют общий сервер.
|
|
|
+
|
|
|
+**Распределенные системы** предполагают наличие облачного хранилища и локальных копий у участников команды.
|
|
|
+
|
|
|
+Локальная система удобна для работы над крупными проектами, но затрудняет взаимодействие с удаленной командой.
|
|
|
+
|
|
|
+Централизованная система облегчает удаленную работу, но все зависит от одного сервера — сбой или взлом могут привести к потере проекта.
|
|
|
+
|
|
|
+В распределенной системе организована удаленная работа. Если основной репозиторий оказывается поврежден, проект всегда можно восстановить из копий у других участников команды.
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+## Зачем новичку учить Git
|
|
|
+
|
|
|
+Git используется в большинстве компаний, где над проектом работают хотя бы два разработчика:
|
|
|
+
|
|
|
+Новый человек приходит в компанию и клонирует репозиторий проекта на ПК.
|
|
|
+
|
|
|
+Получает задачу, создаёт новую ветку и пишет код.
|
|
|
+
|
|
|
+Когда всё готово — отправляет запрос на добавление кода в master-ветку.
|
|
|
+
|
|
|
+Другие разработчики смотрят код, оставляют комментарии и указывают на ошибки.
|
|
|
+
|
|
|
+Новичок дорабатывает код, обновляет master-ветку и переходит к следующей задаче.
|
|
|
+
|
|
|
+## Плюсы Git:
|
|
|
+
|
|
|
+**Распределенная система:** Каждая копия репозитория полная, что повышает гибкость.
|
|
|
+
|
|
|
+**Эффективные ветки:** Легкость создания и управления ветками.
|
|
|
+
|
|
|
+**Скорость:** Быстрые операции, такие как коммиты и слияния.
|
|
|
+
|
|
|
+**История изменений:** Удобный анализ и восстановление предыдущих версий.
|
|
|
+
|
|
|
+**Широкое сообщество:** Много инструментов и интеграций (например, GitHub).
|
|
|
+
|
|
|
+**Оффлайн-доступ:** Можно работать без постоянного интернет-соединения.
|
|
|
+
|
|
|
+## Минусы Git:
|
|
|
+
|
|
|
+**Кривая обучения:** Новичкам трудно освоить команды и концепции.
|
|
|
+
|
|
|
+**Сложность операций:** Некоторые команды могут быть неинтуитивными.
|
|
|
+
|
|
|
+**Ошибка управления:** Высокий риск ошибок при работе с ветками.
|
|
|
+
|
|
|
+**Совместимость:** Проблемы при миграции из других систем контроля версий.
|
|
|
+
|
|
|
+
|