Git เก็บ SHA1 ของการกระทำเพื่อ submodule ที่ไหน?


141

ฉันรู้ว่าเมื่อคุณเพิ่ม submodule ไปยังที่เก็บ git มันจะติดตามการกระทำเฉพาะของ submodule ที่อ้างอิงโดย sha1

ฉันกำลังพยายามหาที่เก็บค่า sha1 นี้

.gitmodulesและ.git/configไฟล์แสดงเฉพาะเส้นทางสำหรับ submodule แต่ไม่ sha1 ของการกระทำ

การอ้างอิงgit-submodule (1)พูดถึงgitlinkรายการเท่านั้นและการอ้างอิง gitmodules (5)ไม่ได้พูดอะไรเกี่ยวกับเรื่องนี้เช่นกัน


คำตอบ:


167

มันถูกเก็บไว้ในฐานข้อมูลวัตถุของ Git โดยตรง วัตถุต้นไม้สำหรับไดเรกทอรีที่ชีวิต submodule จะมีรายการสำหรับการกระทำของ submodule (นี่คือสิ่งที่เรียกว่า "gitlink")

ลองทำgit ls-tree master <path-to-directory-containing-submodule>(หรือเพียงแค่git ls-tree masterว่า submodule อาศัยอยู่ในไดเรกทอรีระดับบนสุด)


14
อ๋อ ฉันเห็นว่าตอนนี้อยู่ที่ไหน git submodule statusและมันก็ตรงกับรหัสจาก ขอบคุณ
Abizern

7
พวกเขาจะเก็บไว้ที่ไหนในระหว่างการรวมและ submodule นั้นขัดแย้งกัน?
Adam Dymitruk

@ AdamDymitruk คุณพบคำตอบแล้วหรือยัง
kgadek

1
ทำไมไม่โพสต์คำถามใหม่คน? :-)
Ivan Vučica

3
มีวิธีในการเปลี่ยนการกระทำนี้ให้ชี้ไปที่อย่างอื่นโดยไม่ต้องปรับปรุงต้นไม้ทำงานหรือไม่
CMCDragonkai
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.