Saya telah membuat repositori git dengan submodule di dalamnya. Saya bisa memberi tahu submodule itu sendiri untuk mengubah jalur repositori jarak jauh, tapi saya tidak yakin bagaimana cara memberitahu repositori induk cara mengubah jalur repositori jauh untuk submodule.
Saya tidak akan terkejut jika saya agak kurang beruntung dan harus melakukan hal-hal secara manual, karena bahkan menghapus submodul tidak mudah.
git
git-submodules
Andrew Grimm
sumber
sumber
git submodule set-url [--] <path> <newurl>
Jawaban:
Anda seharusnya bisa mengedit
.gitmodules
file untuk memperbarui URL dan kemudian menjalankangit submodule sync
untuk mencerminkan perubahan itu ke proyek super dan copy pekerjaan Anda.sumber
git submodule foreach -q git config remote.origin.url
untuk melihat url submodule "aktual".git/config
untuk saya menggunakan git 2.1.0. Saya harus memperbarui keduanya.gitmodules
dan.git/config
secara manual sebelum menjalankangit submodule sync --recursive
agar remote submodule saya diperbarui.git submodule update --init --recursive --remote
yang sebenarnya mengubah repositori ke remote baruPerintah-perintah ini akan bekerja pada command prompt tanpa mengubah file apa pun pada repositori lokal
Silakan lihat blog untuk tangkapan layar: Mengubah URL / Cabang submittules GIT ke URL / cabang lain dari repositori yang sama
sumber
git add .gitmodules
git commit -m "modified submodule URL"
git push origin master
Secara sederhana, Anda hanya perlu mengedit file .gitmodules, kemudian menyinkronkan ulang dan memperbarui:
Edit file, baik melalui perintah git atau langsung:
atau hanya:
kemudian sinkronisasi ulang dan perbarui:
sumber
git submodule update --init
bekerja untuk saya,--remote
tampaknya mengikatnya dengan KEPALA repo jarak jauh.Dengan Git 2.25 (Q1 2020), Anda dapat memodifikasinya .
Lihat " Git submodule url berubah " dan perintah baru
Jawaban asli (Mei 2009, sepuluh tahun lalu)
Sebenarnya, tambalan telah diserahkan pada April 2009 untuk memperjelas
gitmodule
peran.Jadi sekarang dokumentasi gitmodule belum termasuk:
Itu cukup mengkonfirmasi jawaban Jim .
Jika Anda mengikuti tutorial submodule git ini , Anda perlu "
git submodule init
" menambahkan URL repositori submodule ke .git / config."
git submodule sync
" telah ditambahkan pada Agustus 2008 tepatnya untuk mempermudah tugas itu ketika URL berubah (terutama jika jumlah submodul penting).Skrip associate dengan perintah itu cukup mudah:
Tujuannya tetap:
git config remote."$remote".url "$url"
sumber
.git/config
dengan melakukan:git config submodule."$submodule_name".url "$new_url"
yang juga dijelaskan di sini .git submodule set-url [--] <path> <newurl>
?Apa yang berhasil untuk saya (di Windows, menggunakan git versi 1.8.3.msysgit.0):
git submodule init
dangit submodule update
Setelah melakukan semua itu, semuanya dalam keadaan yang saya harapkan. Saya membayangkan pengguna repositori lain akan memiliki rasa sakit yang sama ketika mereka datang untuk memperbarui - akan lebih bijaksana untuk menjelaskan langkah-langkah ini dalam pesan komit Anda!
sumber
git submodule update
. Mengikuti jawaban lain tidak akan mengubah apa yang ada di./git/modules/external
dir jadi berusaha memperbarui akan menghasilkan url yang salah.Cukup edit file .git / config Anda . Sebagai contoh; jika Anda memiliki submodule "umum" Anda dapat melakukan ini di super-module:
sumber
git config --file=.gitmodules -e
membuka editor default di mana Anda dapat memperbarui jalursumber