Содержание
В чем состоит особенность Git в сравнении с другими подобными сервисами? Это децентрализованность. У Git не нужно, чтобы у вас под рукой всегда был интернет (этим грешат SVN — системы управления версиями). Все ваши разработки хранятся у вас на компьютере, т.е. локально. И кодить можно тоже локально. Автоматически исчезает проблема с медленным и тормознутым интернетом (например, через сотовый).
Все файлы хранятся на компьютере разработчика, следовательно, у вас есть доступ ко всем версиям файлов. И в случае необходимости можно найти оригинал. А если сервер упадет — это не проблема, ведь файлы у вас на компе, через синхронизацию можно просто восстановить все как было.
Еще одна фишка Git — можно создавать много веток (файлы различных версий), быстро переключаться между ними, соединять несколько веток в одну.
Состояния файлов
В Git файлы делят на три состояния:
- Измененный — состояние, которое присваивается, как только изменили файл; в таком положении он находится до момента фиксации.
- Зафиксированный — файл сохранен локально в системе Git.
- Подготовленный — измененный файл, подготовленный для следующего коммита.
Каждый проект в на github имеет структуру. Выделяют три директории:
- Служебная (хранятся все данные всех проектов).
- Рабочая (здесь хранятся файлы вашего проекта, разработок).
- Область подготовленных файлов (это отредактированный файл, он находится в служебной директории, в нем есть список всех изменений, и он подготовлен к следующему коммиту).
Поработав немного с сайтом github, у вас может возникнуть желание создать собственный репозиторий. Нет проблем. Сервис Git предлагает бесплатное решение — приложение GitLab. Просто скачиваете, ставите на сервер, настраиваете.
Ветки в Git
Благодаря использованию веток разработчикам при кодинге не нужно создавать несколько копий всех файлов проекта, чтобы работать с ними в разных направлениях. Итак, работа идет внутри директории с нашими исходниками, но сервис Git понимает, что это новая ветка и может зафиксировать изменения в коде или позволит позже вернуться на другую ветку.
Такой подход идеален, когда нужно быстро и качественно написать проект, а для этого определенные задачи делятся между разработчиками. Или вы кодите файл, но тут всплывает баг в другом файле и его нужно срочно исправить. Вы открываете этот файл, редактируете его (закрывая баг, создается новая ветка), а затем сливаете все изменения с рабочей веткой. Удобно.
И подобных веток можно создавать великое множество. При этом есть главная ветка — master. Она создается автоматически при создании нового репозитория (хранилище для файлов). По сути, master представляет собой рабочую версию проекта, а создаваемые ветки — это версии изменения вашего проекта.
Пользоваться Git или другими системами, каждый выбирает сам. Но на сегодня Git представляет из себя наиболее развитую систему.