Melihat -lihat tutorial SubModule , saya membuat submodule dari proyek boto . Kemudian, saya menemukan bahwa saya sebenarnya hanya membutuhkan sebagian dari proyek ini - khususnya, folder boto .
Saya ingin mengubah submodul saya agar mengarah ke folder ini. Saat saya melihat .gitmodules, saya mengerti
[submodule "backup/src/boto"]
path = backup/src/boto
url = https://github.com/boto/boto.git
URL apa yang harus saya gunakan selain https://github.com/boto/boto.git ? Setelah saya mengubah URL, haruskah saya menghapus folder boto secara lokal dan menarik kembali?
git
git-submodules
ripper234
sumber
sumber
git subtree
Jawaban:
Sayangnya, URL untuk submodul selalu mengarah ke repositori - Anda tidak dapat menentukan bahwa Anda hanya menginginkan subfolder dari repositori, dengan cara yang sama seperti git tidak mendukung "klon sempit" secara umum.
Jika Anda tidak dapat hidup dengan memiliki seluruh repositori sebagai submodule, Anda selalu dapat membuat repositori baru yang dikloning dari boto dan kemudian menyiapkan tugas cron untuk:
git fetch
repositori itu ke dalam direktorigit filter-branch
untuk memperbarui cabang di mana subdirektori berada di tingkat teratas.sumber
Anda tidak dapat menggandakan hanya sebagian dari repositori. Ini karena git memperlakukan repositori sebagai objek keseluruhan: ketika Anda mendapatkannya, Anda mendapatkan semuanya .
Jadi, solusinya di sini adalah mengambil submodule di direktori lain, lalu menggunakan symlink untuk mencapai tujuan Anda.
sumber
ln -s
seperti di linux)Yang ingin Anda lakukan adalah membuat cabang di submodule dan memindahkan folder ke atas dan menghapus apa yang tidak Anda perlukan. Anda kemudian dapat mengelola cabang itu sebagai gantinya. Jika Anda ingin mendorong perubahan Anda, Anda harus dapat menggabungkan kembali terlebih dahulu. Git akan mengetahui bahwa Anda telah memindahkan berkas dan berhasil melakukan penggabungan.
Semoga ini membantu.
sumber