[ ШПАРГАЛКА.EXE ]

Git-шпаргалка
для совместной работы

Понятный мини-курс по Git и GitHub: основы, ветки, Pull Request, частые ситуации и команды на каждый день.

1. ЧТО ТАКОЕ GIT

Если просто

Git — система контроля версий. Как Google Docs с историей изменений, но для любых файлов.

GitHub — облако, где хранится проект и куда другие присылают изменения.

2. ОСНОВНЫЕ ПОНЯТИЯ

Словарь

  • Репозиторий (repo)папка проекта под контролем Git
  • Коммит (commit)снимок изменений с подписью
  • Ветка (branch)параллельная версия проекта для экспериментов
  • Pushотправить коммиты в GitHub
  • Pullскачать чужие изменения
  • Mergeслить ветки
  • Pull Request (PR)запрос на мердж
3. ЕЖЕДНЕВНЫЙ ВОРКФЛОУ

Когда работаешь один

  1. Пишешь код, делаешь изменения
  2. git add . — добавить все изменения
  3. git commit -m "что сделал" — зафиксировать снимок
  4. git push — отправить в GitHub
C:\project> git workflow_×
$ git add .
$ git commit -m "добавил кнопку 'Купить'"
[main 4f9a2e1] добавил кнопку 'Купить'
 1 file changed, 12 insertions(+)

$ git push
Enumerating objects: 5, done.
To github.com:user/project.git
   8b3c1d2..4f9a2e1  main -> main
4. СОВМЕСТНАЯ РАБОТА

Когда прислали Pull Request

Открой PR на GitHub, вкладка Files changed. Дальше три варианта реакции:

APPROVE

Всё ок, можно мерджить — зелёная галочка

REQUEST CHANGES

Переделай вот это — блокирует мердж

COMMENT

Просто заметка — не блокирует

5. ЧТО ТАКОЕ ВЕТКИ

Ветка = черновик

Основной код (main) не страдает, пока ты экспериментируешь.

C:\project> git log --graph_×
main:     A───B───C───────────F   (чистовик)
                       \         /
feature:                D───E       (черновик)
                              ↓
                      потом вливается в main

Сломал что-то в feature? Главная ветка цела. Готово и проверено? Сливаешь в main через Pull Request.

6. ЧАСТЫЕ СИТУАЦИИ

FAQ из жизни

«Коллега прислала PR»
Открой Files changed, если всё ок — жми APPROVE и Merge.
«Хочу откатить»
git revert HEAD — безопасно, создаёт коммит-отмену (история не теряется).
«Конфликт при мердже»
Не паникуй. Открой файл, оставь нужную версию, удали маркеры <<<<< ===== >>>>>, закоммить.
«Закоммитил секрет»
Немедленно отзови токен, удали из кода, добавь в .gitignore. Старый коммит в истории — всё равно перевыпускай ключ.
7. BRANCH PROTECTION

Защита main-ветки

На GitHub: Settings BranchesAdd rule:

  • Require pull request before merging
  • Require approvals: 1

После этого без APPROVE ничего не смерджится — даже у тебя.

8. КОМАНДЫ НА КАЖДЫЙ ДЕНЬ

Сохрани и пользуйся

git --cheatsheet_×
git status                  # посмотреть статус
git add .                   # добавить всё
git commit -m "описание"    # закоммитить
git push                    # отправить в GitHub
git pull                    # скачать изменения
git log --oneline -10       # история (10 последних)
git checkout -b ветка       # создать ветку
git checkout main           # вернуться на main
git revert HEAD             # откатить последний коммит
★ ГЛАВНОЕ ПРАВИЛО ★

Не бойся git.
Пока не делаешь --force — историю не потеряешь.