Одна из вещей, которые мне нравятся в том, как я настроил Subversion, - это то, что у меня может быть один главный репозиторий с несколькими проектами. Когда я хочу работать над проектом, я могу проверить только этот проект. Как это
\main
\ProductA
\ProductB
\Shared
затем
svn checkout http://.../main/ProductA
Как новый пользователь git, я хочу изучить передовой опыт в этой области, прежде чем переходить к конкретному рабочему процессу. Из того, что я читал до сих пор, git хранит все в одной папке .git в корне дерева проекта. Так что я мог сделать одно из двух.
- Создайте отдельный проект для каждого продукта.
- Создайте единый масштабный проект и храните продукты в подпапках.
Между продуктами существуют зависимости, поэтому единый масштабный проект кажется подходящим. Мы будем использовать сервер, на котором все разработчики смогут делиться своим кодом. У меня уже есть эта работа над SSH и HTTP, и эта часть мне нравится. Однако размер репозиториев в SVN уже составляет много ГБ, поэтому перетаскивание всего репозитория на каждой машине кажется плохой идеей - тем более, что нам выставлен счет за чрезмерную пропускную способность сети.
Я предполагаю, что репозитории проектов ядра Linux одинаково велики, поэтому должен быть правильный способ справиться с этим с помощью Git, но я просто еще не понял этого.
Есть ли какие-либо рекомендации или лучшие практики для работы с очень большими многопроектными репозиториями?
git diff
иgit status
оба научились учитывать состояния подмодулей, даже если они выполняются из основного проекта. Вы просто не можете пропустить модификацию подмодуля.GitSlave позволяет управлять несколькими независимыми репозиториями как одним. Каждым репозиторием можно управлять с помощью обычных команд git, а gitslave позволяет дополнительно запускать команду для всех репозиториев.
Репо-на-проект имеет преимущества с разбивкой на компоненты и упрощенной сборкой с такими инструментами, как Maven. Репо-на-проект добавляет защиту, ограничивая объем того, что изменяет разработчик - с точки зрения ошибочных коммитов мусора.
источник