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

Какие знаешь команды Git?

1.0 Junior🔥 193 комментариев
#Инструменты тестирования

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

🐱
deepseek-v3.2PrepBro AI5 апр. 2026 г.(ред.)

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

Основные команды Git для работы в команде разработки и тестирования

Как QA инженер с опытом, я использую Git ежедневно для совместной работы с разработчиками, анализа изменений в коде, создания тестовых окружений и отслеживания дефектов. Вот ключевые команды, которые составляют мой рабочий инструментарий.

🔧 Основные операции с репозиторием

# Клонирование репозитория для получения кода тестируемого приложения
git clone https://github.com/project/repository.git

# Инициализация нового репозитория для тестовых скриптов или документации
git init

# Просмотр статуса файлов - что изменено, что добавлено
git status

# Добавление файлов в индекс (staging area)
git add filename.js          # конкретный файл
git add .                    # все изменения
git add *.spec.js           # все тестовые файлы

📝 Работа с коммитами и историей изменений

# Создание коммита с изменениями (например, обновление тестов)
git commit -m "Update: добавил тесты для API авторизации"

# Просмотр истории коммитов с подробной информацией
git log --oneline --graph --decorate
git log --since="2024-01-01" --author="developer"  # фильтрация по дате и автору

# Просмотр изменений в конкретном коммите (полезно при анализе дефектов)
git show <commit-hash>

# Отмена изменений в файле до последнего коммита
git checkout -- config/test-environment.yml

🌿 Ветвление и слияние (Branching & Merging)

# Работа с ветками - критически важно для процессов тестирования
git branch                   # список веток
git branch feature/login-tests  # создание ветки для тестов фичи
git checkout -b bugfix/oauth-defect  # создание и переход на ветку

# Переключение между ветками (например, между dev и staging)
git checkout develop
git checkout main

# Слияние веток (часто нужно для интеграции тестов)
git merge feature/tests --no-ff  # мердж без fast-forward

# Удаление ветки после завершения работы
git branch -d obsolete-test-branch

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

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

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

# Отправка изменений на удаленный сервер
git push origin feature/e2e-tests

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

⚡ Продвинутые команды для анализа и отладки

# Дифф (diff) - сравнение изменений - ОСОБЕННО важно для QA
git diff                    # сравнение рабочей директории и индекса
git diff HEAD~3 HEAD       # сравнение коммитов
git diff develop..feature  # сравнение веток

# Поиск изменений, связанных с конкретной функциональностью
git log --grep="authentication"  # поиск по сообщениям коммитов
git log -p -- app/controllers/  # история изменений конкретной папки

# Временное сохранение изменений (stash)
git stash                  # сохранить незакоммиченные изменения
git stash pop              # восстановить сохраненные изменения
git stash list             # список сохраненных stash

# Отмена/перезапись последнего коммита
git commit --amend         # добавить изменения в последний коммит

🧹 Очистка и обслуживание

# Удаление неотслеживаемых файлов (например, временных файлов тестов)
git clean -n              # предпросмотр файлов для удаления
git clean -f              # принудительное удаление

# Перемещение/переименование файлов с сохранением истории
git mv old-test.js new-test.js

🛠️ Практическое применение команд Git в работе QA Engineer

В моей ежедневной работе Git используется для:

Тестирования новых функциональностей:

# Создание изолированной среды для тестирования новой фичи
git checkout develop
git pull origin develop
git checkout -b test/feature-xyz
# Запуск тестов, создание баг-репортов, фиксация тестовых скриптов

Воспроизведения дефектов:

# Переключение на конкретный коммит, где был обнаружен баг
git checkout <commit-hash>
# Тестирование исправления в ветке разработчика
git checkout bugfix/issue-123

Анализа изменений перед тестированием:

# Просмотр того, что именно изменилось в новой версии
git diff main..release/1.2.0 -- src/
# Проверка, какие тесты были добавлены/изменены
git log --since="1 week ago" --name-only | grep -i test

Интеграции с CI/CD:

# Использование тегов (tags) для управления версиями
git tag -a v1.2.0 -m "Release version 1.2.0"
git push origin v1.2.0

Для эффективной работы команды QA важно не только знать эти команды, но и понимать стратегии ветвления (Git Flow, GitHub Flow), правильно использовать систему тегов для версионирования, и уметь анализировать историю изменений для понимания контекста дефектов. Также критически важно работать с pull request'ами и участвовать в code review, что требует глубокого понимания процесса слияния и разрешения конфликтов в Git.