Как вы работаете с Git и деплоем, какие команды используете
Что проверяют
Самостоятельны ли вы с кодом и стендами: можете ли забрать нужную ветку, понять, что задеплоено, и найти коммит, после которого сломалось. Список команд наизусть интересует мало. Следом часто спрашивают, как вы убеждаетесь, что на стенде нужная версия.
Как отвечать
Покажите команды через свои задачи:
- ветка с доработкой:
git fetch, затемgit switch feature/PAY-123, для своей ветки автотестовgit switch -c. Командыswitchиrestoreпоявились в Git 2.23 и нагляднее старогоcheckout; - что изменилось:
git log --oneline main..feature/PAY-123иgit diff main...feature/PAY-123очерчивают зону регресса до начала тестирования; - поиск регрессии:
git bisect start, отметитьgoodиbad, дальше Git делит историю пополам, а черезgit bisect runможно гонять автотест; - репозиторий автотестов:
git add -p,git stashпри переключении задач,git rebase mainперед merge request,git push --force-with-leaseвместо--force; - отмена:
git revertсоздаёт новый коммит и безопасен для общей ветки,git resetпереписывает историю и годится только локально.
Про деплой. Обычно QA не выкатывает на прод, а запускает пайплайн на тестовый стенд: ручная джоба в GitLab CI, параметризованная сборка в Jenkins с выбором ветки. После выкатки сверяете версию: хеш коммита в эндпоинте /version или тег образа. Для диагностики пригодятся kubectl get pods, kubectl logs, kubectl describe pod, kubectl rollout status, локальное окружение поднимает docker compose up -d.
Назовите, что из этого делали сами. Если с Kubernetes не работали, скажите, чем смотрели логи.
Где спотыкаются
Перечисляют git init, add, commit без контекста. Для QA ценнее bisect и сравнение веток, чем пересказ учебника.
Тестируют, не проверив сборку на стенде, и полдня разбирают баг, которого в нужной версии уже нет.
Делают git push --force в общую ветку и затирают чужие коммиты. --force-with-lease откажет, если на сервере появилось что-то новое.