Git: основы работы с инструментом(текстовая версия)
Программы разрабатывают группы людей. Конечно, есть энтузиасты, которые делают это в одиночку, но даже им приходится в какой-то момент задуматься, а как хранить кодовую базу своего решения? Можно было бы просто сохранять на своём локальном компьютере все данные, никак их не упорядочивая и в случае, если разработчиков несколько, передавать по сети эти файлики, чтобы объединять изменения от всех участников. Это привело бы к ручному труду, вероятным потерям и сложностям отката кода, если в нём написали ошибочные части. Для того, чтобы помочь в этих непростых ситуациях, придумалисистемы хранения кода. В рамках этого текста мы рассмотрим одну из таких систем под названием Git.
На сегодня его можно назвать стандартом индустрии. Мало кто в IT среде не слышал о таких продуктах, как GitHub, GitLab или Bitbucket. Все эти системы являются надстройками с интерфейсом над основной системой - Git. В чём её суть?
Система позволяет нам указать ей, что нужно запомнить содержимое файлов в директории с репозиторием, а после этого мы можем эти изменения отменить, если пожелаем или мы можем поделиться этими изменениями с другими людьми. В момент, когда мы планируем создавать новый проект, при помощи команды git init мы инициируем новый репозиторий в той директории, в которой будет хранится код нашего решения. Что произойдёт в этот момент? Будет создана скрытая директория .git, основная цель которой запоминать в каких файлах и какие изменения будут произведены. Сохранять состояние файлов она будет не самостоятельно, мы должны сами оповещать о том, что хотим запомнить их содержимое на тот момент времени, когда мы запускаем нужную для этого команду.
Коммиты
Тут стоит раскрыть механизм фиксации изменений. Если постараться всё упростить, то фиксация изменений проходит за четыре состояния файла в репозитории:
- он сохранён на файловой системе,
- он добавлен в отслеживаемое,
- отслеживаемое состояние зафиксировано в коммите,
- коммит отправлен в сетевой репозиторий.
Вот представь, у тебя есть файл, который ты только что создал в директории с локальным репозиторием. Гит о нём ещё ничего не знает, так как раньше этого файла не существовало. Но он знает, что он уже появился. Это можно отследить командой git status. Теперь мы можем сказать гиту, что он должен запомнить конкретно этот файл в его таком состоянии, выполняем команду git add и путь до файла, тем самым мы гарантируем, что когда в следующий раз выполним фиксацию - данные изменения будут записаны в коммите. Если мы выполним команду git status сейчас, то увидим такую картинку.