git

База по работе с Git и репозиториями

27.10.2024
Просмотров: 145

Статья о том, как пользоваться git на необходимом для разработчика базовом уровне. Создание репозиториев, их клонирование, стягивание изменений, их фиксирование и отправка.

В моём телеграм можно найти шпаргалку по git.

Введение в Git

Git – это система контроля версий. Она помогает вам сохранять изменения, возвращаться к старым версиям кода и внедрять новые фичи в отдельных ветках.

Для начала нужно разобраться, какова структура git. Тут пока без кода, просто на пальцах.

Git в основном состоит из слепков (commit) и веток (branch).

Слепок – это шаг вашего кода, который вы сохранили. Как в видеоигре. При нажатии на кнопку “сохранить”, вы можете ввести название и записать сохранение. Только в git еще можно выбрать – сохраним мы всё целиком или только какие-то части.

Ветка – это версия вашего кода. В аналогии с играми – это версия игры на другом устройстве.

Например, вы играете в одну и ту же игру на ПК1 и ПК2. Начинаете на ПК1, а потом копируете папку с сохранениями на ПК2 и продолжаете играть там. Потом обратно перемещаете папку на ПК1 и снова продолжаете играть. Так и работают ветки – в них вы играете в свою “игру” по-разному основываясь на предидущих сохранениях или начиная всё с нуля.

Установка Git

В каждой операционной системе Git устанавливается по-разному

Ubuntu

Для Ubuntu мы используем простую команду:

sudo apt install git-all

Windows

Для windows используем ссылку и скачиваем установщик. Далее со всем соглашаемся и на всё подписываемся 😉.

MacOS

Для MacOs используем терминал:

#Если установлен Homebrew
brew install git

#Если нет, то вводим эту команду. 
git --version
#После этого появится окно, где предложит установить Command Line Tools (CLT).
#Соглашаемся и ждем установки. Вместе с CLT установиться и git

Установка CLT – процесс довольно длительный и займёт довольно много памяти, будьте к этому готовы.

Больше информации по ссылкe с офф. сайта.

Основные команды Git

Итак, после установки нам станут доступны команды.

Первая и самая главная – это инициализация:

git init

Так мы создаём репозиторий внутри папки. Все файлы и папки внутри неё начинают отслеживать свои изменения.

Далее, чтобы запомнить эти изменения – нам нужно сделать две вещи:

  1. Добавить необходимые файлы в коммит
  2. Сохранить коммит

Для добавления файлов используется команда git add:

#добавить все файлы
git add .

#Добавление в индекс одного файла: 
git add file_name

#Добавление в индекс нескольких файлов
git add file_name_1 file_name_2 file_name_3

Для создания коммита используйте команду git commit:

git commit -m "быстрый коммит"

-m – этот флаг нужен для того чтобы описание уместить в одно предложение, если его не указать, откроется редактор текста для длинного описания. А так мы все пишем просто в кавычках – и готово.

Тут мы создали своё сохранение – а теперь мы попробуем сделать “копию игры” – ветку.

Чтобы создать ветку, используйте команду:

git branch new

Обратите внимание – команда не будет выполнена, если вы еще не делали ни одного commit-а. Потому что основная ветка будет создана только после первого commit-а.

Эта команда создания ветки, но, после ее выполнения, мы все еще будем в старой ветке (по умолчанию main). Чтобы перейти в новую ветку, используйте команду:

git checkout new

Можно также посмотреть все ветки:

git branch

И символом * будет помечена ветка, в которой вы находитесь сейчас:

Также есть возможность сразу создать ветку и перейти в неё:

git checkout -b feature

Работа с хостингами репозиториев

Чтобы перемещать репозитории с кодом между своими компьютерами или делиться с коллегами – нужен хостинг. Их существует довольно много и можно даже создать свой (на основе GitLab), но обычно используют GitHub / GitLab / Bitbucket.

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

Основная задача – это связать ваш локальный репозиторий с репозиторием на хостинге. Для этого используется команда:

git remote add origin https://gitverse.ru/mihailgok/test.git

Далее мы делаем основную ветку – master:

git branch -M master

Затем делаем пуш – это команда отправляет изменения на хостинг.

git push -u origin master

Готово – после внесения любых изменений нам нужно будет выполнять последовательность команд:

git add .
git commit -m "description"
git push

Если же вы создали новую ветку – ее тоже нужно отправить на хостинг. Для этого есть команда:

git push origin <branch>

Слияние

Основы слияния

Основные шаги при слиянии:

1. Выбор целевой ветки – сначала нужно выбрать ту ветку, куда вы хотите внести изменения из другой ветки. Обычно это основной рабочий поток разработки, например, main или master.

2. Переключение на целевую ветку – перед тем как начать слияние, убедитесь, что находитесь именно в той ветке, куда планируете добавить изменения. Для этого выполните команду:

git checkout main

3. Запуск команды слияния – теперь можно запустить команду для слияния выбранной ветки с текущей. Например, чтобы слить ветку feature с main, выполните следующую команду:

git merge feature

Решение конфликтов

В этом процессе могут возникнуть конфликты – это когда вы изменили одну и ту же строку в разных ветках и они наслоились друг на друга.

Приведу пример:

Допустим, в ветке main имеем файл index.js с кодом:

А в ветке new имеем:

Тогда при команде

git merge new

Мы получим в ветке main ситуацию:

Это и есть конфликт – две строки с разным содержимым при слитии в одну ветку его вызовут (git решает часть таких конфликтов самостоятельно, но далеко не все). Тут вам нужно просто выбрать правильный вариант (стереть все лишнее), затем сделать также стандартные add и commit – и готово.

Возврат к коммиту

Бывает такое, что стёрли что-то важное или добавили что-то и теперь код не работает. Тогда мы возвращаемся к более старому сохранению. Для этого нужно посмотреть их все – используем команду:

git log

Получим такой результат:

Чтобы посмотреть код определённого коммита – используем команду:

git checkout <commit_hash>

Также можно жестко вернуться к коммиту:

git reset --hard <commit_hash>

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

git reset --soft <commit_hash>

Эта команда оставит ваши изменения в рабочем дереве, позволяя вам их пересохранить.

Вывод

В этой статье я разобрал базовые команды, необходимые разработчику для работы с git. На самом деле это инструмент очень большой и не даром у него есть большая документация.

Пишите в комментариях, что я важного мог пропустить или о чём еще стоит рассказать 😉

Успехов 🤟

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
0
Оставьте комментарий! Напишите, что думаете по поводу статьи.x