Bisakah saya membuat sarang repositori Git? Saya sudah:
/project_root/
/project_root/my_project
/project_root/third_party_git_repository_used_by_my_project
Apakah masuk akal untuk git init/add
para /project_root
untuk memudahkan pengelolaan segala sesuatu secara lokal atau apakah saya harus mengelola my_project
dan pihak 3 satu secara terpisah?
Tempatkan pustaka pihak ketiga Anda di repositori terpisah dan gunakan submodul untuk menghubungkannya dengan proyek utama. Ini adalah walk-through:
http://git-scm.com/book/en/Git-Tools-Submodules
Dalam memutuskan bagaimana mengelompokkan repo, saya biasanya akan memutuskan berdasarkan seberapa sering saya akan memodifikasinya. Jika itu adalah perpustakaan pihak ketiga dan hanya perubahan yang Anda buat untuk itu adalah peningkatan ke versi yang lebih baru maka Anda harus memisahkannya dari proyek utama.
sumber
Hanya untuk kelengkapan:
Ada solusi lain, saya akan merekomendasikan: penggabungan subtree .
Berbeda dengan submodula, lebih mudah dipertahankan. Anda akan membuat setiap repositori dengan cara normal. Saat berada di repositori utama Anda, Anda ingin menggabungkan master (atau cabang lain) dari repositori lain di direktori direktori utama Anda.
Kemudian, untuk menarik repositori lain ke direktori Anda (untuk memperbaruinya), gunakan strategi gabungan subtree:
Saya menggunakan metode ini selama bertahun-tahun sekarang, ini berfungsi :-)
Lebih lanjut tentang cara ini termasuk membandingkannya dengan sub modul dapat ditemukan di dokumentasi git howto ini .
sumber
Anda bisa menambahkan
untuk
yang seharusnya mencegah repo bersarang untuk dimasukkan dalam repo induk, dan Anda dapat bekerja dengannya secara independen.
Tetapi: Jika pengguna menjalankan git clean -dfx di induk repo, itu akan menghapus repo bersarang yang diabaikan. Cara lain adalah dengan symlink folder dan abaikan symlink. Jika Anda kemudian menjalankan git clean, symlink dihapus, tetapi repo 'nested' akan tetap utuh karena benar-benar berada di tempat lain.
sumber
git-subtree akan membantu Anda bekerja dengan banyak proyek dalam satu pohon dan menyimpan sejarah yang terpisah untuknya.
sumber
Ringkasan.
Iya. Namun, secara default git tidak melacak
.git
folder repositori bersarang. Git memiliki fitur yang dirancang untuk mengelola repositori bersarang (baca terus).Mungkin tidak masuk akal karena git memiliki fitur untuk mengelola repositori bersarang. Fitur bawaan Git untuk mengelola repositori bersarang adalah
submodule
dansubtree
.Berikut adalah blog tentang topik ini dan di sini adalah pertanyaan SO yang mencakup pro dan kontra dari penggunaan masing-masing.
sumber
Saya akan menggunakan satu repositori per proyek. Dengan begitu, sejarah menjadi lebih mudah dijelajahi.
Saya juga akan memeriksa versi perpustakaan pihak ketiga yang saya gunakan, ke dalam repositori proyek yang menggunakannya.
sumber