Веб-версияОткрыть в Telegram

Пост🚀 Как случайный коммит сломал мне `git subtree`

22 апреля 2025
О
Одержимый кодом🔥
🚀 Как случайный коммит сломал мне `git subtree` Если вы, как и я, новичок в монорепозиториях и git subtree — вот реальная история, которая может сэкономить вам пару часов жизни. В MoonShine мы используем монорепу, и каждый пакет (`src/UI`, src/Core и т.д.) синхронизируем с внешними репами через subtree. Как-то я по-быстрому поправил README прямо в split-репозитории (`moonshine-software/ui`) — и после этого CI перестал работать. git subtree push начал падать, subtree pull выкидывал конфликты. Почему? Потому что история коммитов в split-репо разошлась, и subtree отказался это мержить. 🤕 Недавно ситуация повторилась: по определенной причине (привет, Dependabot) в split-репо снова появился внешний коммит — и всё сломалось. В этот раз я быстро вспомнил, что делать: 🛠 Решение: просто сплитим содержимое в ветку и форсим пуш (сделал себе готовый скрипт): #!/bin/bash set -e REPO_NAME=$1 FOLDER_NAME=$2 REMOTE_REPO="[email protected]:moonshine-software/${REPO_NAME}.git" REMOTE_BRANCH="3.x" LOCAL_PREFIX="src/${FOLDER_NAME}" TMP_BRANCH="repair-split-${REPO_NAME}" git subtree split --prefix="$LOCAL_PREFIX" -b "$TMP_BRANCH" git push --force "$REMOTE_REPO" "$TMP_BRANCH:$REMOTE_BRANCH" git branch -D "$TMP_BRANCH" 📚 Выводы: 1. 🛡 Если split-репо — read-only, защитите ветку от ручных пушей 2. 🤖 Делайте sync только из монорепы через subtree split + push --force 3. ❌ subtree pull — это минное поле. Лучше не использовать в CI. Надеюсь, кому-то это сэкономит время ✌️
2 · 686 ·

Рядом в ленте

ООдержимый кодом🔥Laravel Telemetry 😎 В этот раз первоапрельская шутка вокруг Laravel закрутилась вокруг телеметрии и сбора информации. Сразу кажется, что это дикость для open soООдержимый кодом🔥Проблемы с доступом — тестируем решение В ноябре’2024 я делал пост что у многих пользователей наблюдалась проблема с доступом к сайтам CutCode и MoonShine. Мы п
это сообщение
ООдержимый кодом🔥🧯 Laravel: Сначала хайп, потом откат — как не обжечься на свежем сахаре. Иногда релизы Laravel напоминают сериал: каждый эпизод — с неожиданным поворотом. Как вООдержимый кодом🔥BuilderAI: как "Наташа" оказалась сотнями индусов Стартап BuilderAI ($1,5 млрд оценка) работу индийских разработчиков, которые вручную выполняли запросы пользов
ООдержимый кодом🔥Одержимый кодом🔥@cutcode · канал · Технологии
341подписчиков328средний охват поста
Лента площадки Открыть в Telegram

Открытая публичная лента из поискового индекса ChatCrawler — «Google по публичному Telegram»; обновляется по мере обхода площадки. Время — UTC.

Только публичный контент, официальный API Telegram. О проекте · Вопросы · Чего мы не делаем · Убрать страницу из выдачи · Каталог · Поиск · Как мы считаем