1. Git: система управления версиями для всех. Меньше теории, больше практики. Что такое система контроля версий?

Этот пост принадлежит к серии постов представляющих собой руководство по каждодневному контролю версий для обычных пользователей в целях повышения рабочей эффективности и продуктивности.

Система контроля версий - это как машина времени для файлов. 

Вы наверное помните как в старых играх например в GTA: Vice City проходило сохранение текущего прогресса в игре. Нужно было вызвать экран сохранения игры и выбрать один из 8 слотов для записи сохранения. Однако слотов было всего 8 и если все они были уже заняты, то оставался только один вариант сохранить игру - это перезаписать какое-то сохранение.


В большинстве современных игр эта ситуация исправлена. Но с обычными файлами большинство из нас до сих пор работает подобным образом. Например в документе Word вы можете использовать функции Отменить и Повторить только тогда когда файл открыт и вы с ним работаете. Но как только вы сохраняете файл и закрываете его вся история изменений пропадает. Самые хитрые пользователи по мере работы над документом сохраняют его разные версии, например:
  • Техническое_задание_6.docx
  • Инвентаризация_2013-10-07.xlsx

Но есть способ гораздо лучше - система контроля версий (version control system, VCS). Такая система позволяет метить изменения применяемые к файлы и в будущем при надобности возвращаться к этим изменениям.

Любой человек, которому хоть когда-нибудь приходилось составлять серьезные документы оценить преимущества использования системы контроля версий:
  • не надо держать несколько версий файлов, которые в основном одинаковые, но содержат небольшую разницу;
  • не надо делать резервное копирование;
  • можно вернуться к любой версии своего документа.

Ниже на рисунке представлен обычный процесс работы над документом. Такой процесс не гибок и идет строго слева направо.


А на следующем рисунке представлен процесс работы над документом с использованием системы контроля версий. Такой процесс гибок и может идти по множеству направлений.