Статья рассчитана на людей, которым быстренько надо, не особо вникая что-то сделать.

Или как словарик для перевода с разработческого.

Склонить репу

Репа - репозиторий.

Команда выглядит схожим образом:

git clone git@example.com/command/name.git

Вместо подключения по ssh с ключами, если репозиторий публичный и вы не собираетесь туда ничего пушить, можно использовать клонирование по HTTPS:

git clone https://example.com/command/name.git

В итоге у вас на компе появится папка с файлами в репозитории.

Переключение между ветками

Что такое ветки? В каком-то роде ветку можно считать копией папки. Версией папки. Что-то такое.

Посмотреть какие ветки есть

git branch -a

Выбрать ветку

git switch название_ветки

Название ветки - сложная штука. Список веток показывает вперемешку и локальные и удалённые ветки.

Обычно удалённые ветки содержат что-то вроде origin/ или remote/ в названии. Чтобы их выбрать, в названии надо просто эти самые remote/ и origin/ не указывать.

Создать свою ветку

Ветки создаются отпочковываясь от той ветки, в которой вы находитесь.

То есть, если вы хотите отпочковаться от какой-то ветки вам сперва нужно её выбрать git checkout‘ом.

А создать свою и сразу же в неё переключиться можно командой:

git switch -c new_branch_name

Взаимодействие с удалённым сервером

Вообще их может быть и больше и они могут называться иначе, но в 99% случаев вы используете git как централизованную систему контроля версий у вас он один - origin.

Получить вообще всё, что знает удалённый сервер

git fetch origin -a

Эта команда подтянет к вам все ветки о которых знает удалённый сервер и которых у вас нет.

Но он не выберет за вас новые коммиты, если ветка уже существовала.

Подтянуть коммиты конкретной ветки

Если конкретная ветка - master, то так:

git pull origin master

Отправить свои коммиты

git push origin master

Как коммитить

Коммитить - это как сохранять файл, только фиксировать состояние папки.

Но тут всё чуток сложнее.

Вообще, сделав изменения на них можно (и нужно) посмотреть:

Самое простое - список изменённых файлов и их состояние относительно индекса. Никакой конкретики относительно изменений внутри файлов нет.

git status

Что за индекс

Индекс это то, что вы пометили как то, что собираетесь закоммитить (сохранить).

Категорически советую делать это аккуратно и внимательно, в интерактивном режиме, а если что-то идёт не так, нажимать q, исправлять и начинать процесс интерактивного добавления в индекс заново.

git add -p

Это может показаться занудным, но спасёт огромную тонну времени в будущем и сбережёт от ошибок, добавлений чего-то лишнего и т.д. git add . и git commit -a - это признаки профнепригодности.

В git status добавленное в индекс отображается зелёненьким.

Как посмотреть что в индексе?

git diff --cached

А что не в индексе?

git diff

Коммитить-то как?

Определились что коммитим? Гуд.

git commit -m "Описание того, что мы изменили"

Всё, коммит зафиксирован.

Как смотреть историю коммитов?

git log

Вместе с изменениями

git log -p

Достаточно только списка изменённых файлов

git log --stat

Компактнее!

git log --oneline

И с поиском по тексту коммита

git log --grep MYTASK-666