Найти тему

Git. Знакомство.

На досуге, перелистал вакансии системных администраторов. И заметил, что в 99% случаев, основным требованием является знание такой системы управления версии, как Git. Поэтому давайте с этой системой знакомиться.

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

Если вы уже знакомы с другими системами управления версиями, вам освоить Git по началу будет немного сложнее. Хоть управление и похоже на другие СУВ, но есть большие отличия в самой системе. Главным отличием Git от других СУВ, это то как Git работает с файлами. Обычно в системах управлений версиями информация хранится, как список изменений для файлов. То есть система смотрит на данные как набор файлов и список изменений этих файлов во времени. Примерно, как на рисунке.

-2

В свою очередь Git устроен совсем не так. Он не хранит изменения. Его система состоит из слепков файлов проекта на текущий момент. Что бы повысить эффективность работы системы, если файл в определенной версии не менялся, то сохраняется ссылка на ранее сохраненный. Примерно, все это выглядит так:

-3

По сути Git похож на небольшую файловой системой с огромным количеством мощных инструментов, работающих в ней, с которыми разберемся чуть позже.

Практически все операции в Git делаются локально, Это огромный плюс. То есть вы можете работать с системой даже при отсутствии доступа к сети, в самолете, на улице, в дороге. Передать данные на сервер можно будет, как только сеть появится.

Git следит за целостностью файлов. Каждый раз, когда вы делаете изменения и сохраняете их в файле, Git вычисляет контрольную сумму на основе содержимого файла, и сохраняет ее в виде 40-значного хеша. Это позволяет четко отслеживать изменения в файлах. На этом по сути построена вся философия Git.

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

Ну и самое важное, что нужно знать и помнить про Git. Файлы в Git бывают в трех состояниях: зафиксированном, измененным и подготовленным. А так же три части, из которых состоит Git, это каталог Git, рабочий каталог и область подготовленных файлов.

Обычный процесс работы с Git состоит также из трех этапов.

  1. Вы изменяете файлы в рабочем каталоге. Здесь вы работаете с "зафиксированными" файлами, которые были извлечены из определенной версии проекта. Эти версии достаются из сжатой базы данных в каталоге Git.
  2. Вы подготавливаете файлы (это и есть измененные файлы) и добавляете их в специальную область, которая называется областью подготовленных файлов. Эту область иногда еще зовут индексом.
  3. Вы сохраняете эти файлы в каталог Git. Файлы теперь опять считаются зафиксированными.

Вот такое примерное правило работы с Git. Советую запомнить. Пригодится в будущем.

Заключение.

Итак, мы немного познакомились с тем что такое Git. Основные принципы его работы и работы с непосредственно с ним. Далее продолжим знакомится с этой системой, так ее знание должно быть в портфолио любого уважающего себя сис. админа. Ну а чтобы ничего не пропустить, подписывайтесь на лзене или в телеге. А так же открыт к критике, пожеланиям и вопросам в комментах.