Apakah ada beberapa cara mudah untuk mengubah nama direktori submodule git (selain melalui seluruh gerakan menghapusnya dan menambahkannya kembali dengan nama tujuan baru).
Dan sementara kita berada di dalamnya, mengapa saya tidak bisa melakukan hal berikut di direktori induk: git mv old-submodule-name new-submodule-name
git
git-submodules
Lars Tackmann
sumber
sumber
.gitmodules
secara manual saat memindahkan submodule. lihat jawaban saya di bawah ininpm
menunjukkan cara kerja sederhana. Suatu hari ... mungkin ... seseorang ... akan menulis ulang ... sementara itu ...Jawaban:
Saya menemukan alur kerja berikut berfungsi:
mv oldpath newpath
git rm oldpath
git add newpath
git submodule sync
Catatan: pendekatan ini tidak memperbarui indeks dan .gitmodules dengan benar di versi 2018 GIT.
Catatan: Anda mungkin dapat sekarang hanya melakukan
git mv oldpath newpath
sekarang, sebagai keluar menunjuk di VonC 's jawaban . (Pastikan Anda menggunakan git versi terbaru)sumber
git add newpath
tidak menggunakan garis miring.git/modules/SUBMODULE/config
file, sehinggaworktree
menunjuk ke direktori yang benar lagi.2.13.1
. Tetapi hanya melakukangit mv old new
pekerjaan seperti pesona. Saya hanya perlu melakukan git commit untuk menyelesaikan perubahan.Git1.8.5 (Oktober 2013) harus menyederhanakan proses . Cukup lakukan:
Lihat lebih banyak di komit 0656781fadca1 :
git 2.9 (Juni 2016) akan meningkat
git mv
untuk submodule:Lihat komit a127331 (19 Apr 2016) oleh Stefan Beller (
stefanbeller
) .(Digabung oleh Junio C Hamano -
gitster
- dalam komit 9cb50a3 , 29 Apr 2016)sumber
fatal: source directory is empty, source=my_source, destination=my_destination
. Akan mencoba ini lagi ketika 1.8.5 memiliki rilis stabil.Solusi yang benar adalah:
Sumber: Ganti nama git submodule
sumber
Saya baru saja mencoba beberapa yang disarankan di atas. Saya sedang berlari:
Saya menemukan yang terbaik adalah de-init submodule, hapus direktori dan buat submodule baru.
Setidaknya itulah yang paling berhasil bagi saya. YMMV!
sumber
Anda tidak dapat mengganti nama, jadi Anda harus menghapusnya dulu (
deinit
) dan menambahkannya lagi.Jadi setelah menghapusnya:
Anda juga dapat memeriksa dan menghapus referensi untuk itu di:
.gitmodules
.git/config
.git/modules/<name>
(terbaik untuk membuat cadangan), karena setiap folder memilikiconfig
file tempat menyimpan referensiworktree
lalu ubah perubahan Anda dengan melakukan perubahan pada repo Anda dengan:
dan periksa kembali jika Anda tidak memiliki masalah dengan:
jadi sekarang Anda dapat menambahkan submitule git lagi:
sumber
Edit file .gitmodules untuk mengganti nama submodule dan kemudian ganti nama direktori submodule.
Saya pikir Anda mungkin perlu melakukan
git submodule sync
setelahnya, tetapi saya tidak dalam posisi untuk memeriksa sekarang.sumber
MacO : Ketika saya ingin menggunakan solusi VonC untuk mengubah folder submodule
Common
menjadi huruf kecil:saya mendapat
Solusi - gunakan beberapa nama folder sementara dan pindahkan dua kali:
Itu saja :)
sumber