Jawaban:
Sepertinya Anda ingin menggunakan submodul Git .
Git mengatasi masalah ini menggunakan submodul. Submodul memungkinkan Anda menyimpan repositori Git sebagai subdirektori dari repositori Git lainnya. Ini memungkinkan Anda mengkloning repositori lain ke dalam proyek Anda dan menjaga komit Anda tetap terpisah.
Saya selalu menggunakan symlink untuk mempertahankan dua repo yang terpisah dan berbeda.
.gitignore?
rsync -avh --delete --exclude='.git' REPO-B/ REPO-A/REPO-B-copy/setelah ada perubahan pada REPO-B
Ya, Anda dapat melakukan apa yang Anda minta dengan hierarki file yang Anda gambar. Repo-B bersifat independen dan tidak memiliki pengetahuan tentang Repo-A. Repo-A akan melacak semua perubahan dalam file itu sendiri dan file Repo-B.
Namun, saya tidak akan merekomendasikan melakukan ini. Setiap kali Anda mengubah file dan berkomitmen dalam Repo-B, Anda harus berkomitmen dalam Repo-A. Percabangan di Repo-B akan mengacaukan Repo-A dan percabangan di Repo-A akan miring (kesulitan menghapus folder, dll.). Submodul jelas merupakan cara terbaik.
Anda dapat mencapai apa yang Anda inginkan (repo REPO-A berisi semua file, termasuk yang ada di folder REPO-B, bukan hanya referensi) dengan menggunakan "git-subrepo":
https://github.com/ingydotnet/git-subrepo
Ini masih berfungsi jika beberapa kontributor Anda tidak menginstal perintah subrepo; mereka akan melihat struktur folder lengkap tetapi tidak dapat melakukan perubahan pada subrepos.