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.