Відповіді:
Здається, ви хочете використовувати підмодулі Git .
Git вирішує цю проблему за допомогою підмодулів. Підмодулі дозволяють зберігати сховище Git як підкаталог іншого сховища Git. Це дозволяє вам клонувати ще один сховище у вашому проекті та зберігати свої зобов’язання окремо.
Я завжди використовував посилання для підтримки двох окремих і чітких репостів.
.gitignore
?
rsync -avh --delete --exclude='.git' REPO-B/ REPO-A/REPO-B-copy/
після того, як якісь зміни в REPO-B
Так, ви можете робити саме те, що вимагаєте, за допомогою ієрархії файлів, яку ви намалювали. Repo-B буде незалежним і не матиме знань про Repo-A. Repo-A буде відслідковувати всі зміни у власних файлах та файлах Repo-B.
Однак я б не рекомендував цього робити. Кожен раз, коли ви змінюєте файли та здійснюєте запис у Repo-B, вам доведеться здійснювати в Repo-A. Відгалуження в Repo-B зіпсується з Repo-A, а розгалуження в Repo-A буде непростим (проблеми з видаленням папок тощо). Підмодулі, безумовно, шлях.
Ви можете досягти того, що хочете (що REPO-A repo містить усі файли, включаючи файли в папці REPO-B, а не лише посилання), використовуючи "git-subrepo":
https://github.com/ingydotnet/git-subrepo
Він все ще працює, якщо для деяких ваших учасників не встановлена команда subrepo; вони побачать повну структуру папок, але не зможуть вносити зміни до підрепортажів.