Git: рекомендации и команды (с расшифровкой)
Актуально на: 2026-02-18
Документ для работы по процессу “ветка → Pull Request → ревью → merge в main”.
Цель: чтобы main всегда оставался стабильным и отражал “значимые версии”, а вся работа шла через PR с проверкой партнёром.
0) Принципы
- Не коммить в
mainнапрямую (только через PR). - Одна задача = одна ветка (не смешивать “план по персоналу” и “оптимизация UI” в одной ветке).
- Частые маленькие коммиты проще ревьюить, чем один огромный.
- До начала работы: синхронизируйся с
main. - После merge: подтяни
mainи удаляй локальную ветку.
1) Настройки на GitHub (делается один раз)
Рекомендуемые правила для ветки main в GitHub:
- Require a pull request before merging
- Require approvals: 1 (или 2)
- (желательно) Require status checks (например, CI с
npm run build) - Block force pushes
2) Ежедневный цикл работы (шаблон)
2.1 Обновить main перед началом
git checkout main
git pullЧто делает:
git checkout main— переключает текущую рабочую копию на веткуmain.checkoutисторически делает 2 вещи: переключает ветку и/или восстанавливает файлы.
git pull— забирает изменения из удалённого репозитория и применяет их локально.- Технически это обычно
git fetch+git merge(или rebase — зависит от конфигурации).
- Технически это обычно
2.2 Создать рабочую ветку под задачу
git checkout -b feature/staff-planЧто делает:
git checkout -b <name>— создаёт новую ветку<name>и сразу переключается на неё.-b= “branch” (создать новую ветку).
Альтернатива (более современная команда, если хочешь):
git switch -c feature/staff-planЧто делает:
git switch— переключение веток (без “восстановления файлов”, как уcheckout).-c= “create” (создать ветку).
2.3 Посмотреть, что изменилось
git statusЧто делает:
- Показывает текущую ветку и список изменённых/новых/удалённых файлов.
Полезный компактный формат:
git status -sbЧто делает:
-s= short (короткий вывод)-b= branch (показывать строку про ветку + отношение кorigin/...)
2.4 Добавить файлы в staging (подготовить к коммиту)
git add -AЧто делает:
- Добавляет в staging все изменения: новые файлы, изменённые, удалённые.
-A= “all” (учесть удаление тоже).
Частичные варианты (если хочешь добавлять выборочно):
git add path/to/file.tsЧто делает:
- Добавляет в staging только один файл.
2.5 Сделать коммит
git commit -m "Staff plan: initial UI skeleton"Что делает:
- Создаёт коммит из содержимого staging.
-m= message (сообщение коммита одной строкой).
2.6 Запушить ветку на GitHub
git push -u origin feature/staff-planЧто делает:
- Отправляет ветку
feature/staff-planв удалённый репозиторийorigin.-u=--set-upstream(установить “upstream” связь ветки с удалённой).- После этого можно делать просто
git push/git pullбез указания ветки.
- После этого можно делать просто
2.7 Открыть Pull Request и получить ревью
Делается в GitHub UI:
- Create Pull Request из
feature/staff-plan→main - Добавь партнёра в reviewers
- Дождись approval
2.8 Доработки по комментариям ревью
Обычно это просто новые коммиты в той же ветке:
git add -A
git commit -m "Fix review comments"
git pushЧто делает:
git pushбез аргументов работает, если есть upstream (см.-uвыше).
2.9 После merge в main: обновить локально и убрать ветку
git checkout main
git pull
git branch -d feature/staff-planЧто делает:
git branch -d <name>— удаляет локальную ветку.-d= delete, но “безопасное” удаление: Git не даст удалить ветку, если она не смёржена.- Чтобы удалить принудительно (опасно):
-D(force delete).
Удалить ветку на GitHub (если нужно):
git push origin --delete feature/staff-planЧто делает:
- Удаляет удалённую ветку.
--delete— флаг удаления ветки на remote.
3) Полезные команды диагностики
3.1 Посмотреть последние коммиты
git log --oneline -10Что делает:
- Показывает историю коммитов в компактном виде.
--oneline— сокращённый формат:<hash> <message>.-10— показать 10 записей.
3.2 Посмотреть изменения (diff)
git diffЧто делает:
- Показывает изменения в рабочей директории относительно staging.
git diff --stagedЧто делает:
- Показывает изменения в staging относительно последнего коммита.
--staged(синоним:--cached) — diff того, что уже добавлено черезgit add.
3.3 Посмотреть remotes
git remote -vЧто делает:
- Показывает список remote’ов и их URL.
-v= verbose (показывает fetch/push URL).
4) “Как откатиться” (аккуратно)
4.1 Отменить изменения в одном файле (НЕ в staging)
git restore path/to/file.tsЧто делает:
- Возвращает файл к состоянию последнего коммита (или staging — зависит от флагов).
4.2 Убрать файл из staging (но оставить изменения в файле)
git restore --staged path/to/file.tsЧто делает:
--staged— применить действие к staging, не трогая рабочую копию.
4.3 Сбросить staging целиком (изменения в файлах останутся)
git resetЧто делает:
- Убирает всё из staging, но оставляет изменения в рабочей директории.
5) Про игноры и “папка не должна попасть в Git”
Если папка должна быть локальной (пример: materials/), нужно 2 шага:
- Добавить правило в
.gitignore(чтобы новые файлы не начинали отслеживаться). - Если файлы уже отслеживаются — убрать их из индекса:
git rm -r --cached materials
git commit -m "Stop tracking materials/"Что делает:
git rm --cachedудаляет файлы из Git без удаления с диска.-r= recursive (рекурсивно).
6) Настройка редактора для коммитов (чтобы не “всплывали файлы”)
Если git commit открывает редактор и это мешает:
git config --global core.editor "notepad"Что делает:
git configменяет настройки Git.--global— применить для текущего пользователя (все репозитории).core.editor— какой редактор открывать для сообщений коммита, merge‑сообщений и т.п.
Для VS Code (важно --wait, чтобы Git ждал закрытия):
git config --global core.editor "code --wait"7) Рекомендации по именованию
- Ветки:
feature/<topic>— новая функциональностьfix/<topic>— багфиксchore/<topic>— техдолг/рефактор/обновления
- Сообщения коммитов (коротко и по сути):
Staff plan: add editorSettings: defaultWorkspaceViewIdPerf: lighten autosave writes