Альтернативы в Git подмодулей?
Я чувствую, что использование подмодулей Git как-то хлопотно для моего рабочего процесса разработки. Я слышал о git subtree и Gitslave.
- есть ли еще инструменты для нескольких проектов репозитория и как они сравниваются ?
- могут ли эти инструменты работать на Windows ?
3 ответов:
Что лучше для вас зависит от ваших потребностей, желаний и рабочих процессов. Они в некотором смысле полу-изоморфны, это только некоторые из них намного проще в использовании, чем другие для определенных задач.
gitslave полезно, когда вы контролируете и разрабатываете подпроекты в более или менее то же время, что и суперпроект, и, кроме того, когда вы обычно хотите пометить, ветвить, толкать, тянуть и т. д. все репозитории одновременно. gitslave никогда не тестировался на окнах, о которых я знаю. Для этого требуется perl.
git-подмодуль лучше, когда вы не контролируете подпроекты или, более конкретно, хотите исправить подпроект в определенной редакции даже при изменении подпроекта. git-подмодуль является стандартной частью git и, таким образом, будет работать на windows.
git-поддерево предоставляет интерфейс для встроенной стратегии слияния поддеревьев git. Лучше, когда вы предпочитаете иметь единый репозиторий "унифицированная" история git. В отличие от стратегии слияния поддеревьев, проще экспортировать изменения в разные (директории) деревья обратно в исходный проект, но это не так автоматически, как с gitslave или даже git-подмодулем.
РЕПО теоретически похож на gitslave, но не так хорошо документирован для операций, не связанных с android, которые я нашел. Он довольно посвящен модели разработки Google Android и только изначально поддерживает несколько команд git (хотя вы можете запускать произвольные команды), а ограниченная собственная поддержка не поддерживает, например, централизованный репозиторий для отправки и проверки ветви кажется довольно сложным.
kitenet-это г это то, что вы хотели бы использовать, если у вас есть несколько систем управления версиями, но в основном ограничено для суперпроектов git-only из-за его самого низкого общего знаменателя. Есть способы запустить произвольный команды, но они не так хорошо интегрированы.
в настоящее время я использую подмодули для разработки, а не только связанные сторонние библиотеки. Есть несколько способов облегчить жизнь с помощью подмодулей, особенно когда они являются источником конфликтов слияния или перебазирования. Посмотрите на ls-дерево, чтобы получить 2 фиксации, связанные с конфликтом в подмодуле. Это, вероятно, самая сложная часть подмодулей для людей, с которыми нужно иметь дело. На данный момент сценарии сделают это намного проще в работе. Будущих версий Git лучше родной поддержка для борьбы с ними.
надеюсь, что это помогает.
мы столкнулись с подобной проблемой при использовании подмодулей Git в проектах, где у нас были ЗАВИСИМОСТИ на разных языках. Чтобы справиться с ними, мы создали и с открытым исходным кодом инструмент под названием MDLR ("модульный"), который дает вам декларативные управляемые версиями зависимости Git с аналогичной функциональностью для подмодулей Git, но без раздражающего рабочего процесса. Вы можете установить его и управлять своими зависимостями с помощью инструкций / загрузок на GitHub repo
Comments