Perbarui Maret 2013
Git 1.8.2 menambahkan kemungkinan untuk melacak cabang.
" git submodule
" mulai mempelajari mode baru untuk diintegrasikan dengan ujung cabang jarak jauh (sebagai kebalikan dari mengintegrasikan dengan komit yang direkam dalam gitlink superproject).
# add submodule to track master branch
git submodule add -b master [URL to Git repo];
# update your submodule
git submodule update --remote
Jika Anda memiliki submodul yang sudah ada, sekarang Anda ingin melacak cabang, lihat " cara membuat jalur submodul yang ada menjadi cabang ".
Juga lihat tutorial Vogella tentang submodul untuk informasi umum tentang submodul.
catatan:
git submodule add -b . [URL to Git repo];
^^^
Lihat git submodule
halaman manual :
Nilai khusus dari .
digunakan untuk menunjukkan bahwa nama cabang di submodule harus sama dengan nama cabang saat ini di repositori saat ini .
Lihat commit b928922727d6691a3bdc28160f93f25712c565f6 :
submodule add
: Jika --branch
diberikan, catat dalam.gitmodules
Ini memungkinkan Anda untuk dengan mudah merekam submodule.<name>.branch
opsi .gitmodules
saat Anda menambahkan submodul baru. Dengan tambalan ini,
$ git submodule add -b <branch> <repository> [<path>]
$ git config -f .gitmodules submodule.<path>.branch <branch>
dikurangi menjadi
$ git submodule add -b <branch> <repository> [<path>]
Ini berarti panggilan ke masa depan
$ git submodule update --remote ...
akan mendapatkan pembaruan dari cabang yang sama yang Anda gunakan untuk menginisialisasi submodul, yang biasanya sesuai dengan keinginan Anda.
Ditandatangani oleh: W. Trevor King
Jawaban asli (Februari 2012):
Submodul adalah komit tunggal yang direferensikan oleh repo induk.
Karena ini adalah repo Git sendiri, "riwayat semua komitmen" dapat diakses melalui git log
dalam submodul itu.
Jadi agar induk dapat melacak secara otomatis komit terbaru dari cabang submodul tertentu, itu perlu:
- cd di submodule
- git fetch / pull untuk memastikannya memiliki komit terbaru di cabang kanan
- cd kembali ke repo induk
- tambahkan dan komit untuk merekam komit baru dari submodul.
gitslave (yang sudah Anda lihat) tampaknya paling cocok, termasuk untuk operasi komit .
Agak menjengkelkan untuk membuat perubahan pada submodule karena persyaratan untuk memeriksa ke cabang submodule yang benar, membuat perubahan, komit, dan kemudian masuk ke superproject dan komit (atau setidaknya rekam lokasi baru dari submodul).
Alternatif lain dirinci di sini .