Git & Version Control

симулятор GitСначала проверьте форму истории

Выберите пример и посмотрите результат операции без запуска Git.

симулятор Git

Пример графа коммитов

AA: Общая базаBB: Обновление mainmainCC: Изменение featureDD: Тест featurefeature

A–D и штрихи — учебные ID, а не настоящие хеши Git.

Предпросмотр истории

Выберите пример и операцию, чтобы увидеть результат здесь.

Только заданный учебный граф обрабатывается в браузере; репозиторий не читается и не запрашивается.

Параметры

Целевая ветка: main · Исходная ветка: feature

Ctrl/Cmd + Enter показывает выбранную операцию.

Выберите операцию для просмотра.

Граф моделирует заданные однострочные файлы, а не стратегию Git в вашем проекте.

Симулятор Git начинает с общего коммита, после которого main и feature расходятся. Граф коммитов помогает увидеть родителей новых узлов и положение указателей там, где одних названий команд недостаточно.

Можно переключиться на быструю перемотку или пример с разными правками одной строки. Буквы A–D обозначают учебные узлы и не являются хешами объектов в вашем репозитории.

Зачем нужен симулятор Git?

Один исходный граф, три формы результата

Симулятор Git показывает, что слияние веток сохраняет исходные узлы, а перебазирование и cherry-pick создают символические копии. Такой визуализатор Git помогает отличить движение указателя от создания коммита.

От общего коммита расходятся две линии, затем новый узел слияния получает обоих родителей.

Конфликт опирается на показанные данные

В отдельном примере две ветки меняют одну строку app.js по-разному. Показаны базовое и оба новых значения; это не прогноз конфликта для файлов, которых страница не видит.

Одна строка файла изменена по-разному в двух ветках; предупреждение останавливает предварительный результат.

Три шага чтения графа

01

Проверьте быструю перемотку

Если main является предком feature, merge лишь передвигает указатель main. Новый коммит с двумя родителями нужен в расходящемся примере.

02

Следите за копиями узлов

Rebase повторяет C и D как C′ и D′ поверх main и переносит feature. Cherry-pick копирует только выбранный C или D в main, оставляя исходную ветку на месте.

03

Обновите результат перед экспортом

После смены примера или операции старая схема устаревает, поэтому копирование и загрузка выключаются. Ctrl/Cmd + Enter создаёт новый результат; замените учебные имена и заполнитель хеша.

Что меняется в истории

Слияние бывает разным

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

Перебазирование и выбор одного коммита

Rebase воспроизводит всю цепочку feature, а cherry-pick — только выбранное изменение. Штрихи у новых идентификаторов обозначают копии, а не реальные SHA.

Конфликт ограничен фиксированным файлом

Встроенный пример сравнивает одну строку трёх состояний. Он не реализует текстовое объединение Git и не вычисляет вероятность конфликта в вашем проекте.

Границы учебной модели

Репозиторий не читается и не меняется
Симулятор Git не открывает git log, локальную папку или удалённый URL и не исполняет команды. Незакоммиченные изменения, права и правила сервера неизвестны.
Нет заключения о безопасности
Перед переписыванием общей ветки проверьте настоящие ссылки и договорённости команды. Учебные main и feature не соответствуют автоматически вашим веткам.
Конфликт только для одной строки
Показанный app.js содержит заданные значения. Настоящий Git может учитывать текст, переименования и дополнительные параметры; разрешение конфликта и --continue здесь не выполняются.
Нет произвольной командной строки
Push, pull, stash, squash, revert и интерактивный rebase вне трёх примеров. Для этих задач потребовались бы данные репозитория, которых у фиксированного графа нет.

Вопросы про симулятор Git

В чём разница между git rebase и git merge?

Merge сохраняет обе линии истории и при расхождении может добавить коммит с двумя родителями. Rebase повторяет коммиты feature на новой базе и создаёт новые объекты. Симулятор Git показывает обе формы.

Зачем делать rebase, если есть merge?

Rebase может дать линейную историю собственных ещё не опубликованных коммитов. Для уже общей ветки переписывание затронет коллег; учебная схема не знает вашу политику сотрудничества.

Зачем пользоваться cherry-pick, если можно сделать merge?

Cherry-pick переносит изменение одного выбранного коммита, тогда как merge интегрирует историю ветки. В примере D копируется как D′, но исходный D и указатель feature остаются.

Чем отличаются два варианта слияния веток git merge?

Если текущая ветка является предком другой, возможна быстрая перемотка без нового коммита. Если ветки разошлись, обычное слияние создаёт узел с двумя родителями при отсутствии конфликта.

Как разрешается конфликт изменений при слиянии ветвей?

Git останавливает операцию и оставляет реальные конфликтующие файлы для ручного выбора и проверки. Здесь показаны лишь три фиксированных значения одной строки; страница не редактирует файлы и не завершает слияние.

Предпросмотр отличается от документации устройства?

Откройте симулятор Git

Сравните три операции на одном графе, изучите фиксированный конфликт и затем проверьте каждый черновик по настоящим веткам.