Предположим, что у нас есть следующая структура репозитория на github:
company:project.git
\- company:submodule.git
Разработчик в моей компании разворачивает проект компании, создавая его рабочее пространство следующим образом:
developer:project.git
\- company:submodule.git
Это нормально для 90% разработчиков, поскольку они не меняют библиотеку подмодулей, они работают только в проекте. Теперь предположим, что есть новая функция, которая требует улучшения в подмодуле. Разработчик, которому поручено это, преобразует свое рабочее пространство в это:
developer:project.git
\- developer:submodule.git
Допустим, что нет необходимости в замене подменю другим подмодулем (до git, оригинал и fork подмодуля - две разные вещи).
Если этот разработчик работает в библиотеке немного дольше, он передает эту структуру своей главной ветке, поэтому его вилка на github всегда использует разветвленный подмодуль.
Как только он будет готов к разработке, он создаст запрос на растяжение. Проблема заключается в том, что при слиянии запроса pull главный репозиторий будет выглядеть следующим образом:
company:project.git
\- developer:submodule.git
Это проблематично, так как теперь каждый разработчик, отслеживающий филиал компании, получит субмодуль разработчика.
Чтобы решить проблему, прежде чем разработчик сделает запрос на извлечение, его ведущее подразделение должно быть возвращено в компанию: submodule.git - что очень неудобно, тем более, что локально он всегда будет хотеть работать с разработчиком:. submodule.git
Мы пробовали несколько рабочих процессов, и вышеупомянутая проблема является единственной, в которой пока еще нет хорошего рабочего процесса.