Я расскажу с самого начала тогда, думаю вам тоже будет

интересно.

В общем, есть такой механизм как git worktree.
Обычно репозиторию соответствует одна рабочая копия (либо ни одной в случае bare-репозитория). То есть есть рабочая копия, в ней папка .git в которой уже все данные о репозитории. (Уточнение: Далее я под репозиторием буду иметь в виду как раз таки то что в этой папке, про ремоуты речь не идёт).
Гит умеет так же создавать дополнительные рабочие копии для существующего репозитория. Для этого всего лишь нужно вызвать одну команду и указать в каком каталоге нужно эту рабочую копию создать и на какую ветку ее переключить.

Зачем это может быть полезно?
В любых случаях, когда нам удобно иметь две или более рабочие копии одного репозитория на одном компьютере.
Например я часто параллельно работаю над несколькими задачами, при этом проект у меня собирается 20+ минут. Было бы неудобно ждать при каждом переключении с задачи на задачу по 20 минут.

Плюсов перед тем, чтобы держать несколько копий репозитория несколько:
1) не тратим дополнительное место на репозиторий. Если история проекта весит 300Мб, рабочая копия - 10Мб, то мы экономим по 300Мб при создании каждой рабочей копии. Для трёх рабочих копий это 300 + 10 * 3 МБ против 310 * 3 МБ.
2) Не надо обновлять каждый репозиторий с ремоута отдельно, если репозиторий всего один 🧔🏿👆🏿
3) Простота синхронизации правок между рабочими копиями. Например можно сделать stash save в одной рабочей копии и сразу же stash pop, чтобы забрать эти правки во второй. То же с черрипиками коммитов между временными ветками, которые иначе пришлось бы пушить или передавать патчами.

Есть ещё несколько особенностей worktree, но это уже детали.

Суть проблемы о которой я писал:
Репозиторий большой, файлов в LFS много и они здоровые, я хотел сэкономить время и не выкачивать их по сети. Я сначала сдуру подумал, что он все выкачивает по сети, но он берет файлы из локального репозитория. Все кроме файлов из LFS. Я нашел решение этой проблемы, указывании флага при создании worktree, писал о нем выше, сейчас не смогу процитировать. Но оказалось, что копирование локально занимает совсем немного меньше времени, так что я не сильно выигрываю все равно и лучше буду выкачивать как раньше.

За ссылки в любом случае спасибо.

1 ответов

11 просмотров

Аа, всё, понял, что значит worktree. Слышал, что можно в другом месте держать рабочую копию, но не знал, что их может быть несколько. Прикольно! Спасибо за подробное пояснение

Похожие вопросы

Обсуждают сегодня

Добрый вечер, Пока не совсем понимаю как наладить общение между телеграм ботом и ПО для работы с сим боксом. По самому боту так понял: - Нужен некий баланс, который можно поп...
Magic
6
сделал сайт, прикрутил в боте сайт, и виджет логина. как автоматически логинить пользователя в аккаунт(телеграм), при входе с бота?
Александра Чернивецкая
5
Объясните, пожалуйста, почему компилятор ругается на использование в условии неинициализированной переменной: int x; Task.Run(async () => { x = await somefunc(); }).Wait...
Александр
5
Ребят, подскажите, пожалуйста, почему в префиксе к ассетам, которые генерируются через фильтр | theme в шаблоне, стал вдруг появляться index.php? Вот так выглядит ссылка на а...
Виталий
1
Всем привет. Ребята, подскажите, пожалуйста. у ботов есть ограничение на отправку сообщений - 30 сообщений в секунду, эти ограничения накладываются на все сообщения? или на со...
Artem Stormageddon
4
Блин, ребята, сори за тупые вопросы. А можно ли как-то открыть вебапку по нажатию на кнопку в меню(которое появляется слева, команды)?
Artem Stormageddon
3
а плаксы из-под питона умеют только в комфортных условиях что-то выдавить из себя?)
Lencore
9
Но, может, есть уже проверенная? Наши требования такие: 1. Сообщения должны приходить из Инста в CRM оду 2. Должна быть возможность подключить несколько экаунтов Инстаграм. Р...
Alexander Sharoiko MSE / Александр Шаройко
13
Это может быть все-таки не флудвейт? у меня ботфазер принимает изменения и отображает даже что они изменились, на видео видно что он прислал якобы уже измененное описание, н...
OVERLINK
13
Коллеги, может знает кто, можно ли цвет бейджа счётчика в BackendMenu менять без бубнов?
Alex Blaze
3
Карта сайта