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

Делал ли какие-либо нетипичные команды в Git

2.0 Middle🔥 172 комментариев
#Инструменты и DevOps

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

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

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

Нетипичные команды Git

Да, я регулярно использую расширенные и нетипичные команды Git для решения сложных задач и оптимизации workflow.

1. Git Rebase для переписания истории

Активно использую git rebase для чистоты истории коммитов:

git rebase -i HEAD~5
git rebase main
git rebase --abort
git rebase --continue

Это критично для чистой истории коммитов перед merge request.

2. Git Stash для сохранения незакоммиченных изменений

git stash
git stash save "работаю над feature X"
git stash list
git stash apply stash@{2}
git stash pop
git stash clear
git stash branch feature-name

У нас было частое использование для переключения между задачами.

3. Git Cherry-pick для выборочного применения коммитов

git cherry-pick abc123def
git cherry-pick abc123..def456
git cherry-pick -x abc123
git cherry-pick --continue

Использовал для экстренных хотфиксов в production.

4. Git Reflog для восстановления потерянных коммитов

git reflog
git checkout abc123@{5}
git reflog | grep "branch_name"
git checkout -b restored-branch abc123

Спасало когда случайно удалил ветку.

5. Git Reset для отката изменений

git reset --soft HEAD~1
git reset --mixed HEAD~1
git reset --hard abc123
git reset HEAD -- path/to/file

6. Git Bisect для поиска бага

git bisect start
git bisect bad
git bisect good abc123
git bisect good
git bisect reset

Отлично работает для отладки в большом количестве коммитов.

7. Git Worktree для параллельной работы

git worktree add ../project-fix hotfix/urgent-bug
cd ../project-fix
git worktree remove ../project-fix

Спасает когда нужно быстро зафиксить баг на другой ветке.

8. Git Hooks для автоматизации

echo '#!/bin/bash\nnpm run lint' > .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit
echo '#!/bin/bash\nnpm run test' > .git/hooks/pre-push

9. Git Config для оптимизации

git config --global alias.st "status"
git config --global alias.ci "commit"
git config --global alias.br "branch"
git config --global alias.lg "log --graph --oneline --all"
git config --global alias.prettylog "log --graph --oneline --all --decorate"

Когда я использую эти команды

  • Перед code review — чищу историю с rebase -i
  • При возвращении к задаче — сохраняю прогресс в stash
  • В production hotfix — использую cherry-pick и worktree
  • После ошибочного коммита — восстанавливаю с reflog
  • При поиске регрессии — использую bisect

Эти команды делают Git workflow более эффективным и дают контроль над историей проекта.

Делал ли какие-либо нетипичные команды в Git | PrepBro