У нас достаточно большая и слишком запутанная кодовая база, на которую мы хотим перейти с помощью Git. На данный момент это большой монолитный кусок, который может t легко разбить на более мелкие независимые компоненты. Код создает большое количество разделяемых библиотек, но их исходный код настолько чередован, что в настоящий момент его нельзя четко разделить на отдельные репозитории.
Меня не слишком беспокоит, сможет ли Git справиться со всеми код в едином репозитории, но проблема в том, что нам нужно версировать как исходный код, так и многие библиотеки, построенные из него. Создание всего с нуля занимает часы, поэтому при проверке кода разработчики также должны получить предварительно скомпилированные версии этих библиотек, чтобы сэкономить время.
И здесь я мог бы воспользоваться некоторыми советами. Библиотеки не должны быть на 100% обновлены (поскольку они обычно поддерживают двоичную совместимость и всегда могут быть перестроены отдельным разработчиком при необходимости), поэтому я я ищу способы избежать загромождения нашего репозитория исходного кода бесчисленными незначительно разными версиями двоичных файлов, которые можно регенерировать из источника в любом случае , при этом делая библиотеки легкодоступными для разработчиков, чтобы они не придется перестраивать все с нуля.
Так что я бы хотел каким-то способом добиться чего-то вроде следующего.
git commit -a
, не должен ' t в конечном итоге случайно загрязняют репозиторий новой ревизией всех этих сгенерированных файлов) Конечно, в то же время процесс их использования должен быть как можно более плавным. При проверке исходного кода библиотеки, построенные на его основе, должны следовать (или, по крайней мере, быть легко доступными). И при фиксации не должно быть возможности случайно зафиксировать новые версии этих библиотек только потому, что они были перекомпилированы и теперь имеют другую встроенную метку времени.
Я рассматривал вариант использования подмодулей git , создавая " как можно проще (и трудно испортить) для наших разработчиков?
Или есть совершенно другое решение, которое мы не рассматривали?
Я должен упомянуть, что я использовал Git только пару дней, так что я сам новичок.