← Назад к вопросам

Умеешь ли пользоваться Git

2.2 Middle🔥 112 комментариев
#JavaScript Core

Комментарии (2)

🐱
claude-haiku-4.5PrepBro AI3 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Умеешь ли пользоваться Git

Git - это система контроля версий, которая критична для любого разработчика. Профессиональная работа с Git включает понимание основных команд, workflows и лучших практик.

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

Базовые команды, которые нужно знать:

// Инициализация репозитория
git init

// Клонирование репозитория
git clone https://github.com/user/repo.git

// Проверка статуса
git status

// Просмотр истории коммитов
git log --oneline
git log -p  // с изменениями
git log --graph --all --decorate  // красивый граф

// Добавление файлов в stage area
git add file.js
git add .  // все файлы

// Коммит изменений
git commit -m "feat: add user authentication"
git commit -am "fix: correct button alignment"  // add + commit

// Просмотр изменений
git diff  // unstaged changes
git diff --staged  // staged changes
git diff main feature-branch  // между ветками

Работа с ветками

Ветки - это изолированные линии разработки:

// Создание новой ветки
git branch feature/new-feature
git checkout -b feature/new-feature  // создать и переключиться

// Список веток
git branch  // локальные
git branch -a  // все

// Переключение между ветками
git checkout main
git switch main  // современный способ

// Удаление ветки
git branch -d feature/done  // локальная
git push origin --delete feature/done  // удаленная

// Переименование ветки
git branch -m old-name new-name

Слияние и Rebase

Способы объединения веток:

// Merge - создает коммит слияния
git checkout main
git merge feature/new-feature

// Rebase - переписывает историю
git checkout feature/new-feature
git rebase main

// Интерактивный rebase для переделки коммитов
git rebase -i HEAD~3  // последние 3 коммита
// Доступные команды: pick, reword, squash, fixup, drop

Remote операции

Работа с удаленным репозиторием:

// Просмотр удаленных репозиториев
git remote -v

// Добавление удаленного репозитория
git remote add origin https://github.com/user/repo.git

// Отправка в удаленный репозиторий
git push origin main  // отправить текущую ветку
git push -u origin feature  // set upstream

// Получение изменений с удаленного репозитория
git fetch origin  // только загрузить
git pull origin main  // загрузить и объединить

// Force push (осторожно!)
git push --force-with-lease origin feature  // безопаснее

Reset и Revert

Отмена изменений:

// Отменить коммит, сохранив изменения
git reset --soft HEAD~1

// Отменить коммит и вернуть файлы
git reset --mixed HEAD~1

// Полностью отменить коммит
git reset --hard HEAD~1  // осторожно!

// Отменить коммит, создав новый коммит (для public веток)
git revert HEAD

// Отменить последние 3 коммита
git revert HEAD~2..HEAD

Stash для временного сохранения

Сохранить работу без коммита:

// Сохранить текущие изменения
git stash
git stash save "WIP: fixing login bug"

// Список сохраненных изменений
git stash list

// Применить последние сохраненные изменения
git stash pop  // применить и удалить
git stash apply  // применить без удаления

// Применить конкретное сохранение
git stash apply stash@{0}

// Удалить сохранение
git stash drop stash@{0}

Cherry-pick для выборочного применения

Применить конкретный коммит к текущей ветке:

// Применить коммит с другой ветки
git cherry-pick abc123

// Применить несколько коммитов
git cherry-pick abc123 def456

// Применить диапазон коммитов
git cherry-pick main..feature

Tags для маркирования версий

Создание меток для релизов:

// Создать lightweight тег
git tag v1.0.0

// Создать annotated тег (рекомендуется)
git tag -a v1.0.0 -m "Release version 1.0.0"

// Список тегов
git tag

// Отправить теги
git push origin v1.0.0
git push origin --tags  // все теги

// Удалить тег
git tag -d v1.0.0  // локально
git push origin --delete v1.0.0  // удаленно

Workflow лучшие практики

Рекомендуемый Git workflow:

// 1. Создать feature ветку
git checkout -b feature/new-feature

// 2. Делать регулярные коммиты
git add .
git commit -m "feat: add login form"

// 3. Перед push синхронизировать с main
git fetch origin
git rebase origin/main

// 4. Отправить в удаленный репозиторий
git push -u origin feature/new-feature

// 5. Создать Pull Request на GitHub
// 6. После merge удалить ветку
git branch -d feature/new-feature
git push origin --delete feature/new-feature

Полезные alias команд

Сократить часто используемые команды:

// Добавить в .gitconfig
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.unstage 'reset HEAD --'

// Использование
git co main  // вместо git checkout main
git br  // вместо git branch

Поиск ошибок с Git bisect

Найти коммит, который сломал функционал:

// Начать bisect
git bisect start

// Указать, что текущий коммит плохой
git bisect bad

// Указать последний хороший коммит
git bisect good v1.0.0

// Для каждого коммита проверяешь:
git bisect good  // этот хороший
git bisect bad   // этот плохой

// Завершить bisect
git bisect reset

Вывод

Профессиональный Git workflow включает:

  1. Регулярные коммиты с ясными сообщениями
  2. Создание feature веток для каждой задачи
  3. Rebase для чистой истории
  4. Merge в main через Pull Requests
  5. Правильное использование stash, revert, reset
  6. Понимание разницы между merge и rebase
  7. Забота о истории коммитов и чистоте кода
Умеешь ли пользоваться Git | PrepBro