Думай как Git

В основе Git лежит несколько базовых идей, понимание которых крайне важно для эффективной работы. Разберём их.

Снимки вместо различий

Snapshot Stream

Git работает со снимками, а не с дельтой изменений. Каждый раз, когда делается коммит, создаётся слепок всего репозитория (внутри, конечно, всё оптимизировано, но детали реализации нас не интересуют). Когда мы используем git diff, Git динамически высчитывает разницу и показывает нам.

В этом легко убедиться, если выполнить git checkout идентификатор. После этой команды, в рабочей копии окажется то состояние репозитория, которое было на момент коммита идентификатор.

Почти каждая операция локальная

  • Изменение файлов
  • Коммиты
  • Работа с историей

Об этом уже говорилось, но не лишним повторить ещё раз. Git – децентрализованная система, каждый репозиторий полностью (почти) автономен.

Git — целостный

Невозможно изменить содержимое репозитория таким образом, чтобы гит об этом не узнал

Git — это про добавление данных

  • Удаление не удаляет
  • Изменение не изменяет

Даже если вы удаляете данные, это приводит всего лишь к тому, что они пропадают в рабочей копии, но папка .git помнит всё. Неизменяемые данные – ключевая стратегия, приводящая к таким возможностям как возврат в истории, откаты изменений и многое другое.

Кстати, по этой причине желательно не хранить в Git большие бинарные файлы (например архивы), так как это приводит к сильному распуханию папки .git.

Три состояния Git

Areas

Файлы в состоянии staged, в отличие от modified и untracked, находятся в специальной области, называемой областью подготовленных файлов (staging area) внутри директории .git. Её ценность станет понятнее, когда вы познакомитесь с ветвлением.

Зарегистрироваться

или войти в аккаунт

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно.

  • 115 курсов, 2000+ часов теории
  • 800 практических заданий в браузере
  • 250 000 студентов

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Rambler
Логотип компании Bookmate
Логотип компании Botmother

Есть вопрос или хотите участвовать в обсуждении?

Зарегистрируйтесь или войдите в свой аккаунт

Нажимая кнопку «Зарегистрироваться», вы даёте своё согласие на обработку персональных данных в соответствии с «Политикой конфиденциальности» и соглашаетесь с «Условиями оказания услуг».