у меня есть GIT репозитория А с содержимым:мерзавец поддерево из одной отрасли в нескольких местах того же проекта
<shared files dir>/
sharedFile1
sharedFile2
И у меня есть дополнительный репозиторий B 2 проектов, каждый из них должен использовать общие файлы из хранилища А. Так что структура файла будет похожа на это:
Project_X
<shared files dir>/
sharedFile1
sharedFile2
<project X dirs>
Project_Y
<shared files dir>/
sharedFile1
sharedFile2
<project Y dirs>
Я хотел бы разделяемые файлы обновляться только в хранилище а, и мне нужно, чтобы позволить project_X и Project_Y, чтобы получить эти обновления легко ,
На самом деле символическая ссылка может быть точным решением, которое мне нужно, но, к сожалению, используемая файловая система не поддерживает его.
Поддерево Git также выглядит как подходящее решение, но проблема в том, что я не смог найти, как объединить поддерево из одной ветви в 2 местоположения в том же хранилище. Мне удалось создать файловую структуру мне нужно:
git read-tree --prefix=Project_X/shared_files_dir/ -u shared_remote_branch
git read-tree --prefix=Project_Y/shared_files_dir/ -u shared_remote_branch
создает необходимые filestructure (точно так, как я описал в верхней части вопроса), но при попытке объединить обновление приносит мне только изменения в последнее поддерево я создал : только
git merge --squash -s subtree --no-commit shared_remote_branch
Обновляет Project_Y/shared_files_dir /, а не Project_X/shared_files_dir/с изменениями от shared_remote_branch.
Буду признателен за любые идеи. О том, как объединить поддерево из одной отрасли в 2-х местах (Project_X/shared_files_dir /) и (Project_Y/shared_files_dir /) или как сделать это в любой другой методологии
Спасибо за ваш ответ. Я не хотел использовать подмодули из-за большого количества проблем с ними в Интернете (например, потеря ваших изменений при обновлении подмодуля git). Поэтому я задавался вопросом, могут ли быть дополнительные решения .... – user2924714
@ user2924714 Я понимаю, но я уже несколько месяцев использую подмодули (как в моем проекте: https://github.com/VonC/compileEverything/blob/master/ .gitmodules # L10-L13, где подмодуль Semantic-UI следует за «мастером»), и с последней версией git все эти проблемы были решены или серьезно смягчены. – VonC
Пытался использовать подмодули, я все еще вижу, что это накладные расходы, и есть слишком много вариантов ошибок. Знаете ли вы, можно ли выполнить его с помощью поддеревьев? (См. Оригинальный вопрос: мне не удалось слить поддерево из одной ветви в 2 местоположения в том же репозитории. Мне удалось создать нужную структуру файлов: git read-tree --prefix = Project_X/shared_files_dir/-u shared_remote_branch git read -tree --prefix = Project_Y/shared_files_dir/-u shared_remote_branch НО: git merge --squash -s поддерево --no-commit shared_remote_branch Обновляет только Project_Y/shared_files_dir, а не оба – user2924714