Odpowiedzi:
Wygląda na to, że chcesz użyć modułów podrzędnych Git .
Git rozwiązuje ten problem za pomocą modułów podrzędnych. Moduły podrzędne umożliwiają przechowywanie repozytorium Git jako podkatalogu innego repozytorium Git. Pozwala to na sklonowanie innego repozytorium do projektu i oddzielenie zatwierdzeń.
Zawsze używałem linków symbolicznych do utrzymywania dwóch oddzielnych i odrębnych repozytoriów.
.gitignore
?
rsync -avh --delete --exclude='.git' REPO-B/ REPO-A/REPO-B-copy/
po zmianach w REPO-B
Tak, możesz zrobić dokładnie to, o co prosisz, z narysowaną hierarchią plików. Repo-B będzie niezależne i nie będzie miało żadnej wiedzy na temat Repo-A. Repo-A śledzi wszystkie zmiany w swoich własnych plikach i plikach Repo-B.
Jednak nie polecałbym tego robić. Za każdym razem, gdy zmieniasz pliki i zatwierdzasz w Repo-B, będziesz musiał zatwierdzić w Repo-A. Rozgałęzianie w Repo-B zadziała z Repo-A, a rozgałęzienie w Repo-A będzie niewygodne (problemy z usuwaniem folderów itp.). Podmoduły są zdecydowanie najlepszym rozwiązaniem.
Możesz osiągnąć to, co chcesz (to repozytorium REPO-A zawiera wszystkie pliki, w tym te w folderze REPO-B, a nie tylko odniesienie), używając „git-subrepo”:
https://github.com/ingydotnet/git-subrepo
Nadal działa, jeśli niektórzy z twoich współpracowników nie mają zainstalowanego polecenia subrepo; zobaczą pełną strukturę folderów, ale nie będą w stanie zatwierdzić zmian w repozytoriach.