Pertanyaan Git repositori dalam repositori Git [duplikat]


Pertanyaan ini sudah memiliki jawaban di sini:

Saya memiliki git repositori utama A dan kami menggunakan sumber dari repositori Git lain B dalam subdirektori proyek utama kami. Sekarang akan baik untuk memiliki repositori B yang diperiksa di dalam repositori A dalam subdirektori yang digunakan ini. Jika orang lain kemudian mengkloning repositori, tentu saja dia harus mendapatkan repositori utama A dan di dalam itu secara otomatis repositori B.

Biarkan saya memvisualisasikan struktur direktori:

+ main_repository - direktori root dari Repositori utama
  + src - direktori yang berisi sumber
    + foreignRepo - ini harus menjadi direktori root dari repositori git lain
  + binari
  + lainnya

Ini juga harus diketahui dalam repositori jarak jauh, hanya salinan lokal tidak membantu saya, karena orang lain memeriksa ini dan harus dapat mengkompilasi semua hal.


32
2017-12-21 14:28


asal


Jawaban:


Anda akan ingin membaca tentang Kirim submodul.


23
2017-12-21 14:31



Anda dapat menumpuk dua git repo tanpa menggunakan submodul. Misalkan ChildRepo adalah subdirektori dari ParentRepo, dan keduanya adalah repositori git.

+ ParentRepo
  - ChildRepo

Jika Anda menambahkan file ke ChildRepo, ParentRepo akan mengabaikannya. Ketika Anda melakukannya, itu akan ditambahkan ke ChildRepo. Tidak mungkin untuk menambahkan file dalam ChildRepo ke ParentRepo.

Info lebih lanjut: Git repo gotchas bersarang!


6
2018-04-19 07:42



Menggunakan git subtree di git versi 1.7.11 dan di atasnya. git subtree lebih unggul dari submodul git karena:

  • Pengelolaan alur kerja sederhana itu mudah. Versi git yang lebih lama adalah didukung (bahkan sebelum v1.5.2)
  • Kode sub-proyek tersedia tepat setelah klon proyek super selesai
  • git subtree tidak mengharuskan pengguna repositori Anda untuk mempelajari sesuatu yang baru, mereka dapat mengabaikan fakta bahwa Anda menggunakan subtree untuk mengelola dependensi
  • git subtree tidak menambahkan file metadata baru seperti git submodule tidak (seperti .gitmodule)
  • Isi subtree dapat dimodifikasi tanpa memiliki salinan repositori terpisah dari ketergantungan di tempat lain

Selain itu, jika Anda perlu lepaskan subtree dari repositori Anda yang ada ke repositori baru, git subtree split dapat membantu Anda dengan itu.


6
2018-03-06 22:59