Git-это распределенная система управления версиями с открытым исходным кодом. В распределенной системе управления версиями локальная копия сохраняется на каждом узле (компьютере человека, который является частью проекта). Существует также централизованный сервер, где все члены команды продвигают свои изменения. Таким образом, Git устойчив к сбоям, поскольку каждый узел имеет свою собственную копию исходного дерева.
Как Git хранит изменения
Git хранит изменения в файлах иначе, чем другие системы управления версиями, такие как SVN и CVS. Это одна из важных концепций Git, которую вы должны усвоить как можно раньше. Системы контроля версий хранят разницу между двумя версиями. Например, рассмотрим файл А, который менялся три раза. Первая версия файла будет сохранена как есть, в смысле сохранится полный файл. По мере появления новых версий будут сохраняться только отличия от предыдущей версии. Это станет яснее, когда мы посмотрим на изображение ниже, это изображение показывает, как в течение нескольких ревизий изменения сохраняются для трех файлов.
Другие CVS хранят дельту (изменения) в исходном файле с течением времени. Git, напротив, сохраняет моментальный снимок измененного файла. Например, если вы внесли изменения в файл A, сохраняется полный снимок измененного файла. Если файл не изменился между двумя версиями, Git сохранит ссылку на исходный файл вместо того, чтобы копировать его снова в новой версии. Ниже изображение суммирует, как Git внутренне хранит изменения.
Подводя итог этому разделу, можно отметить три важных момента, которые мы узнали о Git:
- Git хранит моментальный снимок файла в отличие от хранения разницы, что делают другие системы управления версиями.
- Git делает только снимок измененных файлов.
- Чтобы оптимизировать память, Git сохраняет ссылку на файл, который не изменился вместо того, чтобы делать его копию в новой версии.
Git-это распределенная система управления версиями
Git имеет удаленный репозиторий, который хранится на сервере, и локальный репозиторий, который хранится на компьютере каждого разработчика. Это означает, что код не просто хранится на центральном сервере, но и полная копия кода присутствует на всех компьютерах разработчиков. Поскольку каждый узел имеет локальную копию, почти все операции в Git являются локальными (исключение составляют команды Pull и Push). Это означает, что вам не нужно все время быть подключенным к удаленному хранилищу, чтобы делать свою работу.
С другой стороны, системы управления версиями, такие как CVS и SVN, требуют подключения к серверу для каждой операции. Это дает Git значительное преимущество в скорости. Так как большинство операций выполняются локально, то они проходят очень быстро. Например, если вы хотите внести изменения, это можно сделать прямо в вашей системе. Позже, когда у вас будет несколько коммитов для отправки, вы можете отправить свои изменения на центральный сервер для всех членов команды. Аналогично, если вы хотите видеть историю изменений, внесенных в проект, вам не нужно сетевое подключение. Все изменения можно просмотреть только из локальной копии.
Благодаря локальному хранению репозитория Git может обеспечить значительное преимущество в скорости по сравнению с другими системами управления версиями.
Читайте также: Как создать сайт на WordPress.
Зачем использовать Git?
С момента разработки и выпуска Git, он приобрел огромную популярность среди разработчиков и, будучи открытым исходным кодом, включил в себя множество функций. Сегодня огромное количество проектов используют Git для контроля версий, как коммерческих, так и персональных. Давайте посмотрим, почему Git стал таким популярным, обсудив его основные особенности
Производительность: Git обеспечивает наилучшую производительность, когда речь заходит о системах управления версиями. Committing, branching, merging — все это оптимизировано для лучшей производительности, чем другие системы.
Безопасность: Git обрабатывает вашу безопасность с помощью криптографического метода SHA-1. Алгоритм надежно управляет версиями, файлами и каталогами, чтобы ваша работа не была повреждена.
Модель ветвления: Git имеет другую модель ветвления, чем остальные VCS. Модель ветвления Git позволяет иметь несколько локальных ветвей, независимых друг от друга. Наличие этого также позволяет вам без трений переключать контекст (переключаться назад и вперед к новой фиксации, коду и обратно), код на основе ролей (ветвь, которая всегда идет в производство, другая в тестирование и т. д.) и одноразовые эксперименты (попробуйте что-то, если не работает, удалите его без потери кода).
Промежуточная область: Git имеет промежуточную стадию, называемую «индекс” или «промежуточная область (staging area)», где коммиты могут быть отформатированы и изменены до завершения коммита.
Открытый исходный код: это очень важная особенность любого программного обеспечения, присутствующего сегодня. Будучи открытым исходным кодом, разработчики со всего мира могут внести свой вклад в программное обеспечение и сделать его все более мощным с помощью функций и дополнительных плагинов.