Как стать автором
Обновить

Комментарии 14

Всегда пожалуйста!
Всем спасибо за карму, перенёс в тематический блог. :-)
Большое спасибо! Про поддеревья не знал, а очень надо было ;)
Рад, что помог!
Как-то вы всё усложняете.

Есть третий вариант, намного проще первых двух. держите отдельные репозитарии git в корневом каталоге проекта и в каждом из каталогов, содержащих подмодули.

Если хотите скажем обновить все репозитарии начиная с корневого каталога одной командой, создайте alias gitpull='git pull && cd vendor/plugins/prawnto; git pull'

Преимущества понятны?
Автор так жалко времени, потраченного на возню с git submodules и с subtree merge strategy, что он не готов принять лежащее на поверхности решение и минусует ;-(
Если я правильно понимаю ситуацию, предложенное Вами решение в действительности мало отличается от использования подмодулей. Кроме того, что подмодули на самом деле попытка «легитимизации» такого подхода.

Список претензий к подмодулям есть в статье. Ваш подход хоть одну из них снимает?
Мой подход претензии эти игноритует. Поскольку я умею автоматизировать свою работу, то я предпочитаю простой и понятный способ использования git, а когда вижу длинный набор команд, то сокращаю его путём встроенных в ОС средств.

Скажем, чтобы решить одну из ваших проблем, когда «из проекта верхнего уровня не видно изменений внутри подмодулей и наоборот», задать alias вида

alias gitstatus='find. -type d -name '.git'|while read i; do cd "$i"/..;git status; done'

для запуска из корня проекта.
Ну, я ведь не просто так претензии эти написал. Для меня они существенны, и вариант с альясами по ряду причин неприемлем. Если для Вас он проще — так это же хорошо! Я же никого не заставляю пользоваться поддеревьями. Каждый выбирает то, что ему лучше подходит.
Очень интересное решение. Спасибо!
Рад помочь!
Сабмитить изменения в проект поддерева значительно сложнее чем с подмодулями. Но это легко обойти, внося изменения в отдельный клон этого проекта.
Кстати, на Гитхабе есть проект, нацеленный на развитие работы с поддеревьями: git-subtree.

А тем временем на ГитХабе появился форк, позволяющий делать push поддерева :-) github.com/tickzoom/git-subtree
Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.