как управлять несколькими git проектами в одном репозитории github с другой папкой - PullRequest
0 голосов
/ 16 января 2020

У меня есть такое требование:

Создание одного репозитория GitHub A_ ROOT с 2 подпапками B_FOLDER и C_FOLDER,

, и теперь я использую git init два локальных проекта B и C отдельно, как мне сделать sh локальный проект B в B_FOLDER и проект C в C_FOLDER?

РЕДАКТИРОВАТЬ Почему мне это нужно: у меня есть один репо на github, я хочу добавить папку как examples под моим репо, и каждый пример должен быть независимым и runnable, и когда я корректирую примеры, я не хочу изменять основной проект.

Ответы [ 2 ]

1 голос
/ 16 января 2020

Зачем мне это нужно: у меня есть один репозиторий на github, я хочу добавить папку, как примеры, под своим репо, и каждый пример должен быть независимым и запускаемым, а когда я корректирую примеры, я не хочу изменить основной проект.

Хотя вы можете получить то, что вы хотите с подмодулями , это лишняя сложность. То, что вы описываете, - это обычная настройка проекта.

Просто включите каталог examples/ как часть основного хранилища проекта. Зафиксируйте и pu sh изменится так же, как и любой другой каталог. Нет ничего плохого в «модификации основного проекта» путем фиксации в каталоге examples/. Полезно сохранять примеры с исходным кодом, чтобы они оставались в синхронизации c при изменении проекта. Во многих случаях изменение кода проекта требует обновления примеров.


В некоторых случаях может потребоваться другой процесс для examples.

. Если вы хотите sh раздать examples отдельно, это должно быть сделано с помощью инструмента выпуска. Я не могу сказать, рекомендовать инструмент релиза для вашего проекта, но я могу рекомендовать, чтобы Git не был инструментом релиза.

Если у вашего проекта есть дорогой обзор или набор тестов, который выполняется при каждом коммите или извлечении Запрос, измените ваш процесс, чтобы использовать сокращенный процесс для изменений, которые касаются только каталога examples. Вы можете проверить, какие файлы были изменены в ветке с помощью git diff master --name-only. И вы можете увидеть, какие файлы были изменены в предыдущем коммите с git diff-tree --no-commit-id --name-only -r HEAD.

1 голос
/ 16 января 2020

Подмодули должны быть в состоянии решить вашу проблему.

Часто бывает так, что при работе над одним проектом вам нужно использовать другой проект изнутри. Возможно, это библиотека, которую разработала третья сторона или которую вы разрабатываете отдельно и используете в нескольких родительских проектах. В этом сценарии возникает общая проблема ios: вы хотите иметь возможность рассматривать два проекта как отдельные, но при этом использовать один из другого.

...

Git решает эту проблему с помощью субмодулей. Подмодули позволяют вам хранить репозиторий Git в качестве подкаталога другого репозитория Git. Это позволяет вам клонировать другой репозиторий в свой проект и хранить отдельные коммиты.

Ссылка: https://git-scm.com/book/en/v2/Git-Tools-Submodules

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...