Kodokon kodokon.com

Сохранять работу и хранить версии

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

7 мин · 3 вопросов

Открыть этот урок в Kodokon

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

Для резервных копий запомни правило 3-2-1: минимум 3 копии данных, на 2 разных носителях, причём 1 из них - не у тебя дома. Внешнего диска плюс онлайн-сервиса вполне достаточно. Осторожно с очень частым заблуждением: папка, синхронизированная с облаком, - это не резервная копия. Если ты удалишь файл по ошибке, удаление разойдётся по всем копиям за считаные секунды.

Git - это машина времени для твоих файлов. Чтобы начать, достаточно трёх слов. Репозиторий - это папка проекта, за которой следит Git. Коммит - это снимок всего проекта в конкретный момент вместе с сообщением, объясняющим изменение. История - это цепочка таких снимков, по которой можно ходить и возвращаться назад сколько угодно. Git работает целиком на твоей машине, а сервисы вроде GitHub или GitLab хранят его копию в интернете.

BASH
cd my-project
git init
git add .
git commit -m "Первая версия сайта"
Создать репозиторий и записать первый снимок проекта.
BASH
git status
git log --oneline
git diff
git restore index.html
Посмотреть состояние, историю, текущие изменения и отменить изменения одного файла.

Проверка знаний

Убедись, что запомнил ключевые моменты этого урока.

  1. Что такое коммит?
    • Снимок состояния проекта в конкретный момент, с сообщением
    • Копия проекта, отправленная коллеге по почте
    • Сжатый архив в формате zip
  2. Почему синхронизация с облаком не заменяет резервную копию?
    • Потому что она всегда платная
    • Потому что удаление или ошибка мгновенно расходится по всем копиям
    • Потому что она не работает без интернета
  3. Чего никогда не должно быть в репозитории Git?
    • Исходного кода проекта
    • Файла с паролями или ключами доступа
    • Файла README, который объясняет проект