Di mana Git menyimpan SHA1 dari commit untuk submodule?


141

Saya tahu bahwa ketika Anda menambahkan submodule ke repositori git, ia melacak komit tertentu dari submodule yang direferensikan oleh sha1-nya.

Saya mencoba mencari di mana nilai sha1 ini disimpan.

File .gitmodulesdan .git/confighanya menampilkan path untuk submodule, tetapi bukan sha1 dari commit.

The git-submodule (1) referensi hanya berbicara dari gitlinkentri dan gitmodules (5) referensi tidak mengatakan apa-apa tentang ini baik.


Jawaban:


167

Itu disimpan dalam database objek Git secara langsung. Objek tree untuk direktori tempat submodule tinggal akan memiliki entri untuk komit submodule (ini disebut "gitlink").

Coba lakukan git ls-tree master <path-to-directory-containing-submodule>(atau hanya git ls-tree masterjika submodule tinggal di direktori tingkat atas).


14
Ya. Saya melihat di mana tempatnya sekarang. Dan itu cocok dengan id dari git submodule status. Terima kasih.
Abizern

7
di mana mereka disimpan selama penggabungan dan submodule bertentangan?
Adam Dymitruk

@ AdamDymitruk, sudahkah Anda menemukan jawabannya?
kgadek

1
Mengapa tidak memposting pertanyaan baru, kawan? :-)
Ivan Vučica

3
Apakah ada cara untuk mengubah id komit ini untuk menunjuk ke sesuatu yang lain tanpa memperbarui pohon kerja?
CMCDragonkai
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.