Не успел закончиться один цикл статей, начинаем другой. Но в этот раз более разноплановый. Хочу помочь тебе подготовиться к собеседованиям. А именно разобрать вопросы, которые в основном задают джунам. Сегодня поговорим про системы контроля версий, а конкретно - про Git.
Для начала, что это вообще такое? Представь себе, что у тебя есть работающая программа, ты меняешь зачем-то код, обновляешь программу дня три подряд и на выходе понимаешь, что код твой новый не работает и легче все откатить назад. Да в принципе не только код, вообще, любой документ от редактированной фотки и до например коммерческого предложения. Когда ты засыпаешь носом на клавиатуре и документ в сотню страниц превращается в абракадабру и действие “отменить” уже не работает, тебе становится слегка обидно. Есть 2 типа таких систем: централизованные, когда все версии хранятся только на сервере и децентрализованные, когда версии хранятся у тебя на компе и ты их можешь тоже выгрузить на сервер чтобы поделиться с остальными. Сегодня рассмотрим второй вариант, как самый распространенный сейчас
А что, если я скажу, что каждую, даже промежуточную, версию версию любого документа можно сохранить и к любой из версий в нужный момент вернуться? Вот таким и занимаются системы контроля версий. Это тебе для общего развития, на собеседовании вряд ли спросят. А вот работать с этими системами надо уметь. Все команды, про которые я скажу запускаются в командной строке, при условии установленного Git (https://git-scm.com)
У тебя есть 7 основных команд, которые используются чаще всего:
- git clone - чтобы скопировать с сервера код к себе на компьютер
- git add - это когда создаешь новый репозиторий, либо добавляешь новый файл и хочешь чтобы он тоже учитывался
- git pull - если у тебя на компьютере уже был скачан репозиторий с кодом, но ты думаешь, что кто-то на сервер мог отправить изменения. Вообще, это хорошая практика, прежде чем работать над новыми изменениями сделать git pull чтобы получить изменения коллег
- git commit - когда все нужные изменения по какой-то задаче сделаны и ты хочешь их сохранить в системе контроля версий локально
- git push - эта команда нужна чтобы отправить на сервер твои изменения, которые сохранены у тебя локально, чтобы другие члены команды могли их тоже получить.
- git merge - пожалуй, может тебе показаться самой непонятной командой, но попробую тебе объяснить. У нас есть дерево изменений, есть ствол у этого дерева с названием main, куда вносятся все изменения, когда они протестированы и готовы пойти к пользователю на устройство. А есть ветки, в которой ты работаешь чтобы не мешать другим. Ну например, у тебя задача покрасить кнопку в зеленый цвет, ты создашь ветку green-button. Эта ветка возьмет весь код из main и дальше ты спокойненько будешь с ней работать. Когда работа с ней завершится, тебе нужно будет отправить все изменения из этой ветки в main, но все дело в том, что изменения в main захочешь отправить не только ты, а вообще все, кто над чем-то завершил работу. Вот процесс слияния твоих изменений с веткой main и называется merge
На самом деле, команд у гита очень много, я тебе дал основные, так как про них любят спрашивать джунов. Вообще, рекомендую пройти коротенький интерактивный курс: https://githowto.com/ru Тут ты точно научишься пользоваться гитом.
На этом все, завтра разберу еще один вопрос собесов! Так что подписывайся, комментируй и зови друзей!