Как пользоваться git
Статья рассчитана на людей, которым быстренько надо, не особо вникая что-то сделать.
Или как словарик для перевода с разработческого.
Склонить репу
Репа - репозиторий.
Команда выглядит схожим образом:
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