Архив рубрики ~Полезное~

Git на продвинутом уровне: rebase, cherry-pick, subtree

Git на продвинутом уровне: rebase, cherry-pick, subtree

Git на продвинутом уровне: rebase, cherry-pick, subtree

Git на продвинутом уровне: rebase, cherry-pick, subtree

Освойте продвинутые возможности Git: от rebase и cherry-pick до subtree и интерактивных методов работы с историей. Управляйте ветками и коммитами как профессионал.

Rebase: перезапись истории коммитов

Команда git rebase — мощный инструмент для изменения истории коммитов и последовательности изменений. Она особенно полезна при необходимости поддерживать чистую и линейную историю разработки.

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

git checkout feature git rebase main

Ветка feature теперь будет содержать ваши коммиты, «переписанные» поверх последнего состояния main.

Также вы можете воспользоваться интерактивным режимом:

git rebase -i HEAD~4

Это позволяет редактировать, объединять (squash), удалять или переупорядочивать коммиты. Такой подход удобен перед пушем в общий репозиторий — история станет аккуратной и понятной.

Cherry-pick: выборочный перенос коммитов

Если вам нужно перенести конкретный коммит из одной ветки в другую, но не всё содержимое, команда git cherry-pick пригодится.

Допустим, вы хотите перенести исправление из ветки bugfix в ветку develop:

git checkout develop git cherry-pick a1b2c3d

Ветка develop теперь включает коммит с указанным хэшем, даже если он из другой ветки.

Cherry-pick полезен для изолированных изменений или при выборе отдельных исправлений для разных версий продукта.

Subtree: подключение других репозиториев

git subtree позволяет встраивать один репозиторий в другой как подпроект. В отличие от submodule, subtree не требует отдельного управления зависимостями и работает как часть основного репозитория.

Например, подключим внешний проект:

git subtree add —prefix=vendor/lib https://github.com/username/library.git main —squash

Эта команда скачает внешний репозиторий и разместит его в папке vendor/lib вашего проекта.

Чтобы обновить внешний проект позже:

git subtree pull —prefix=vendor/lib https://github.com/username/library.git main —squash

Subtree особенно хорош для проектов, где внешний код должен быть частью общего коммита и истории.

Stash: временное сохранение изменений

git stash позволяет сохранить текущие изменения, не коммитя их, и вернуться к чистому рабочему каталогу. Это удобно, если вы не закончили работу, но нужно срочно переключиться на другую ветку.

git stash git checkout main

Вернуться к сохранённым изменениям можно с помощью:

git stash pop

Список всех сохранённых stash’ей:

git stash list

Bisect: поиск проблемного коммита

git bisect — отличная команда для поиска первого коммита, вызвавшего баг. Git использует бинарный поиск по истории коммитов.

Пример:

git bisect start git bisect bad # текущий коммит содержит баг git bisect good a1b2c3d # коммит, в котором всё работало

Git начнёт переходить между промежуточными коммитами, пока вы не укажете, в каком из них баг впервые появился.

Clean: удаление ненужных файлов

Если в каталоге проекта остались временные или сгенерированные файлы, которые не отслеживаются Git, их можно удалить командой:

git clean -fd

Флаг -f означает «force», а -d — удаление директорий. Будьте осторожны: эта команда необратима.

Shortlog и log: анализ истории коммитов

git shortlog позволяет быстро увидеть список авторов и количество их коммитов:

git shortlog -sn

А команда git log с параметрами — мощный способ визуального анализа истории:

git log —oneline —graph —decorate —all

Это покажет дерево коммитов в компактной форме.

Tag: метки и версии

git tag используется для маркировки важных коммитов, например — релизов:

git tag v1.0.0 git push origin v1.0.0

Можно создавать аннотированные теги с дополнительной информацией:

git tag -a v1.1.0 -m «Релиз версии 1.1.0»
Источник

❌ Нет похожих статей с такими тегами

Оцените материал:

Поделиться
Понравилась статья? Расскажите другим
ВКонтакте
Читайте также
Архив рубрики ~Лента новостей~ [Перевод] У парадокса голосования нашлась форма: это бутылка Клейна Архив рубрики ~Лента новостей~ Роман, Нэнси Роман. Как появилась и чем займется еще одна космическая обсерватория Архив рубрики ~Лента новостей~ Как ошибка в измерения погубила Mars Climate Orbiter? Архив рубрики ~Лента новостей~ Чужака казнят за фальшивую ноту в приветствии Архив рубрики ~Лента новостей~ Юридическая фирма по искусственному интеллекту Crosby делает ставку на распадающуюся знаменитую фирму Weil Gotshal Архив рубрики ~Лента новостей~ Как исследовательский проект Массачусетского технологического института превратился в глобальный язык программирования Архив рубрики ~Лента новостей~ Больше чем предложение: как Альфа-Банк создал ИИ-двигатель для работы с бизнесом Архив рубрики ~Лента новостей~ От Word по почте до ИИ‑скиллов: обсудим эволюцию документации и зачем нейросетям бизнес‑контекст Новости робототехники Искусственный интеллект в БПЛА: преимущества и риски Архив рубрики ~Лента новостей~ Для получения религиозного освобождения от использования ИИ на работе не обязательно верить в бога. Архив рубрики ~Лента новостей~ Яндекс Браузер впервые преодолел отметку в 100 миллионов активных пользователей на устройствах Архив рубрики ~Лента новостей~ ИИ всегда на вашей стороне. Почему это может стать проблемой, особенно для подростков? Архив рубрики ~Лента новостей~ Воспоминания об АОНе. Как работал определитель номера и почему он вызывал столько дискуссий Архив рубрики ~Лента новостей~ Микропластик сорбировал железо и медь из сыворотки крови. Они вошли в состав белковой короны на частицах пластика Архив рубрики ~Лента новостей~ [Перевод] У парадокса голосования нашлась форма: это бутылка Клейна Архив рубрики ~Лента новостей~ Роман, Нэнси Роман. Как появилась и чем займется еще одна космическая обсерватория Архив рубрики ~Лента новостей~ Как ошибка в измерения погубила Mars Climate Orbiter? Архив рубрики ~Лента новостей~ Чужака казнят за фальшивую ноту в приветствии Архив рубрики ~Лента новостей~ Юридическая фирма по искусственному интеллекту Crosby делает ставку на распадающуюся знаменитую фирму Weil Gotshal Архив рубрики ~Лента новостей~ Как исследовательский проект Массачусетского технологического института превратился в глобальный язык программирования Архив рубрики ~Лента новостей~ Больше чем предложение: как Альфа-Банк создал ИИ-двигатель для работы с бизнесом Архив рубрики ~Лента новостей~ От Word по почте до ИИ‑скиллов: обсудим эволюцию документации и зачем нейросетям бизнес‑контекст Новости робототехники Искусственный интеллект в БПЛА: преимущества и риски Архив рубрики ~Лента новостей~ Для получения религиозного освобождения от использования ИИ на работе не обязательно верить в бога. Архив рубрики ~Лента новостей~ Яндекс Браузер впервые преодолел отметку в 100 миллионов активных пользователей на устройствах Архив рубрики ~Лента новостей~ ИИ всегда на вашей стороне. Почему это может стать проблемой, особенно для подростков? Архив рубрики ~Лента новостей~ Воспоминания об АОНе. Как работал определитель номера и почему он вызывал столько дискуссий Архив рубрики ~Лента новостей~ Микропластик сорбировал железо и медь из сыворотки крови. Они вошли в состав белковой короны на частицах пластика