Комментарии (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 включает:
- Регулярные коммиты с ясными сообщениями
- Создание feature веток для каждой задачи
- Rebase для чистой истории
- Merge в main через Pull Requests
- Правильное использование stash, revert, reset
- Понимание разницы между merge и rebase
- Забота о истории коммитов и чистоте кода