惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

罗磊的独立博客
L
LangChain Blog
aimingoo的专栏
aimingoo的专栏
IT之家
IT之家
B
Blog
博客园_首页
博客园 - 司徒正美
有赞技术团队
有赞技术团队
博客园 - 聂微东
I
InfoQ
美团技术团队
GbyAI
GbyAI
阮一峰的网络日志
阮一峰的网络日志
H
Help Net Security
大猫的无限游戏
大猫的无限游戏
MyScale Blog
MyScale Blog
WordPress大学
WordPress大学
The GitHub Blog
The GitHub Blog
A
About on SuperTechFans
人人都是产品经理
人人都是产品经理
Microsoft Azure Blog
Microsoft Azure Blog
Engineering at Meta
Engineering at Meta
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Git для QA Engineer
makurea · 2026-06-01 · via Все публикации подряд на Хабре

Простой

6 мин

11K

Содержание

Введение
Что такое Git
История создания Git
Зачем Git нужен тестировщику
Основные концепции Git
Принцип работы Git
Основные команды Git
Работа с ветками
Конфликты и merge
Git Flow и подходы к разработке
GUI-инструменты для работы с Git
Практические сценарии для QA
Типичные ошибки новичков
Выводы

Введение

Практически в любой современной IT-команде используется Git. Даже если тестировщик не пишет production-код, ему всё равно регулярно приходится работать с репозиториями: запускать проект локально, переключаться между ветками, смотреть изменения, обновлять тестовые данные или участвовать в code review.

Во многих вакансиях для QA знание Git уже считается базовым навыком — особенно для специалистов уровня Middle и выше. А для автоматизаторов Git вообще является обязательным инструментом ежедневной работы.

При этом многие начинающие тестировщики знают только несколько команд (clone, pull, push) и боятся всего остального. Из-за этого возникают проблемы: потерянные изменения, конфликты, случайные коммиты в main-ветку и путаница при работе в команде.

Данная статья — это практический обзор Git именно с точки зрения QA-инженера. Мы разберём:

  • как устроен Git;

  • какие команды действительно нужны тестировщику;

  • как безопасно работать с ветками;

  • как не ломать чужой код;

  • и как Git помогает в ежедневной работе QA.

Что такое Git

Git — это распределённая система контроля версий (Version Control System), предназначенная для отслеживания изменений в файлах и совместной работы над проектом.

Что такое Git

Что такое Git

Проще говоря, Git позволяет:

  • сохранять историю изменений;

  • возвращаться к предыдущим версиям файлов;

  • работать нескольким людям одновременно;

  • безопасно экспериментировать с кодом;

  • объединять изменения разных разработчиков.

Главная особенность Git — каждая копия репозитория содержит полную историю проекта. Это отличает Git от старых централизованных систем контроля версий.

В Git изменения сохраняются не как «новая версия файла», а как набор снимков состояния проекта (snapshots).

Типичный workflow выглядит так:

  1. Разработчик или QA получает проект (git clone);

  2. Вносит изменения;

  3. Сохраняет их локально (commit);

  4. Отправляет изменения в удалённый репозиторий (push);

  5. Остальные участники получают обновления (pull).

История создания Git

Git был создан в 2005 году Linus Torvalds после конфликта сообщества Linux с системой BitKeeper, которая ранее использовалась для разработки ядра Linux.

Линус Торвальдс

Линус Торвальдс

Основные требования к новой системе были:

  • высокая скорость;

  • надёжность;

  • поддержка распределённой разработки;

  • возможность работать с огромным количеством изменений.

В результате Git стал одной из самых популярных систем контроля версий в мире. Сегодня его используют практически все крупные IT-компании и open-source проекты.

Зачем Git нужен тестировщику

Для QA Git полезен не меньше, чем разработчику.

Основные сценарии использования:

  1. Получение актуальной версии проекта Тестировщик может самостоятельно обновить локальную сборку без ожидания разработчиков.

  2. Работа с автотестами Практически все UI/API-автотесты хранятся в Git-репозиториях.

  3. Просмотр изменений Git помогает понять:

  • какие файлы изменились;

  • какие фичи были добавлены;

  • какие модули затронуты.

  1. Анализ багов Через историю коммитов можно выяснить:

  • кто изменил код;

  • когда появилась проблема;

  • какой commit её вызвал.

  1. Работа с feature-ветками QA может тестировать отдельную ветку ещё до попадания изменений в main.

  2. Code Review тестов Для автоматизаторов Git необходим для review автотестов и совместной разработки framework’а.

Основные концепции Git

Перед изучением команд важно понять базовые сущности Git.

Термин

Описание

Repository (репозиторий)

Проект вместе с историей изменений

Commit

Сохранённое состояние проекта

Branch

Отдельная линия разработки

Merge

Объединение изменений

Remote

Удалённый репозиторий

Clone

Копирование репозитория

Pull

Получение изменений

Push

Отправка изменений

Staging Area

Область подготовки файлов перед commit

HEAD

Указатель на текущий commit

Одна из самых важных особенностей Git — разделение между:

  • рабочей директорией;

  • staging area;

  • историей commit’ов.

Из-за этого новичкам Git часто кажется сложным.

Принцип работы Git

Git работает локально. Большинство операций выполняются без доступа к серверу.

Типичный цикл выглядит так:

Принцип работы Git

Принцип работы Git

Это важно понимать:

  • git add НЕ отправляет файл на сервер;

  • git commit сохраняет изменения только локально;

  • только git push отправляет изменения в remote repository.

Git отслеживает изменения через хэши SHA-1. Каждый commit содержит:

  • уникальный идентификатор;

  • автора;

  • дату;

  • комментарий;

  • ссылку на предыдущий commit.

Благодаря этому Git умеет:

  • восстанавливать историю;

  • сравнивать версии;

  • откатывать изменения;

  • объединять ветки.

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

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

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

Базовые команды

Команда

Назначение

git clone url

Клонировать репозиторий

git status

Проверить состояние файлов

git add file

Добавить файл в staging

git commit -m "message"

Создать commit

git push

Отправить изменения

git pull

Получить изменения

git fetch

Скачать изменения без merge

git log

Посмотреть историю commit’ов

git diff

Посмотреть изменения

git reset

Сбросить изменения

git revert

Откатить commit безопасным способом

Примеры основных операций

Клонирование проекта

git clone https://github.com/project/backend.git

Проверка состояния

git status

Добавление файла

git add test_login.py

Commit изменений

git commit -m "Added login API tests"

Отправка изменений

git push

Получение обновлений

git pull

Просмотр истории

git log --oneline

Просмотр изменений

git diff

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

Ветки (branches) — одна из главных причин популярности Git.

Они позволяют:

  • разрабатывать новые функции изолированно;

  • тестировать изменения независимо;

  • безопасно экспериментировать.

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

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

Основные команды для веток

Команда

Назначение

git branch

Показать список веток

git checkout branch

Переключиться на ветку

git checkout -b branch

Создать новую ветку

git switch branch

Современный аналог checkout

git merge branch

Объединить ветки

git branch -d branch

Удалить ветку

Пример workflow QA

git checkout develop
git pull

git checkout -b feature/login-tests

# написание тестов

git add .
git commit -m "Added login tests"

git push origin feature/login-tests

Конфликты и merge

Merge Conflict

Merge Conflict

Когда несколько человек изменяют один и тот же участок файла, Git может не понять, какую версию оставить. Тогда возникает merge conflict.

Пример конфликта:

<<<<<<< HEAD
old code
=======
new code
>>>>>>> feature-branch

QA-инженеру важно уметь:

  • понимать причину конфликта;

  • аккуратно объединять изменения;

  • не удалять чужой код случайно.

После исправления конфликта нужно:

git add .
git commit

Важно:

  • никогда не делать merge «вслепую»;

  • всегда читать конфликтующие участки;

  • проверять проект после merge.

Git Flow и подходы к разработке

В командах используются разные стратегии работы с Git.

Git Flow / CI-CD / QA Pipeline

Git Flow / CI-CD / QA Pipeline

Git Flow

Классическая модель:

  • main — production;

  • develop — основная разработка;

  • feature/* — новые функции;

  • release/* — подготовка релиза;

  • hotfix/* — срочные исправления.

Trunk Based Development

Более современный подход:

  • одна основная ветка;

  • маленькие короткоживущие feature branches;

  • частые merge.

QA важно понимать используемый workflow, чтобы:

  • правильно тестировать ветки;

  • не путать окружения;

  • понимать процесс релиза.

GUI-инструменты для работы с Git

Не все QA работают через терминал. Существуют удобные GUI-клиенты.

GUI инструменты

GUI инструменты

GitHub Desktop

Простой интерфейс для базовых операций:

  • commit;

  • push/pull;

  • работа с ветками;

  • просмотр diff.

SourceTree

Популярный GUI-клиент с визуализацией веток и merge.

GitKraken

Современный интерфейс и удобная работа с конфликтами.

Visual Studio Code

Позволяет работать с Git прямо внутри IDE.

Для QA чаще всего достаточно:

  • VS Code;

  • GitHub Desktop;

  • базовых консольных команд.

Практические сценарии для QA

Проверка конкретной feature-ветки

git checkout feature/payment-api
git pull

Получение последних изменений перед тестированием

git pull origin develop

Быстрый просмотр изменённых файлов

git diff --name-only

Откат локальных изменений

git restore .

Просмотр автора изменений

git blame file.java

Временное сохранение изменений

git stash
git stash pop

Это особенно полезно, когда QA:

  • переключается между задачами;

  • тестирует несколько веток;

  • быстро меняет окружения.

Типичные ошибки новичков

Ошибка

Почему это плохо

Commit в main/master

Можно сломать production-ветку

git push --force без понимания

Можно удалить чужие изменения

Работа без git pull

Возникают конфликты

Огромные commit’ы

Сложно review и искать баги

Непонятные commit messages

История становится бесполезной

Игнорирование .gitignore

В репозиторий попадают мусорные файлы

Merge без проверки

Можно сломать сборку

Выводы

Финальная шпаргалка

Финальная шпаргалка

Git — один из базовых инструментов современного QA-инженера.

Даже если тестировщик не занимается разработкой, Git помогает:

  • работать с feature-ветками;

  • запускать проекты локально;

  • анализировать изменения;

  • быстрее находить причины багов;

  • эффективнее взаимодействовать с разработчиками.

Для автоматизаторов Git вообще является обязательным навыком, без которого невозможно полноценное участие в разработке тестового framework’а.

Главное — не пытаться запомнить все команды сразу. В реальной работе регулярно используется ограниченный набор операций:

  • clone

  • pull

  • status

  • add

  • commit

  • push

  • checkout

  • merge

Остальное приходит с практикой.

Где потренироваться

Теория — это половина дела. Git лучше всего осваивается на практике. Вот два отличных бесплатных ресурса, где можно «набить руку» безопасно, не ломая реальный репозиторий:

  • Learn Git Branching — интерактивный визуальный тренажёр с русским интерфейсом. Лучший способ понять ветки, merge, rebase и конфликты через наглядные диаграммы и задачи.

  • Git Mastery — современный тренажёр с пошаговыми сценариями от базовых команд до продвинутых приёмов. Подходит для закрепления материала из этой статьи.

Рекомендуется: сначала прочитать статью, а потом пройти хотя бы первые 3-4 уровня в любом из тренажёров — разница в понимании Git будет колоссальной.

Спасибо за внимание

Спасибо за внимание

Спасибо за внимание. Надеюсь, материал был полезен.