Trường hợp Git lưu SHA1 của cam kết cho một mô hình con?


141

Tôi biết rằng khi bạn thêm một mô hình con vào kho git, nó sẽ theo dõi một cam kết cụ thể của mô hình con đó được tham chiếu bởi sha1 của nó.

Tôi đang cố gắng tìm nơi lưu trữ giá trị sha1 này.

Các tệp .gitmodules.git/configchỉ hiển thị các đường dẫn cho mô hình con, chứ không hiển thị sha1 của cam kết.

Tham chiếu git-subodule (1) chỉ nói về một gitlinkmục và tham chiếu gitmodules (5) không nói gì về điều này cả.


Câu trả lời:


167

Nó được lưu trữ trong cơ sở dữ liệu đối tượng của Git. Đối tượng cây cho thư mục nơi mô hình con sống sẽ có một mục nhập cho cam kết của mô hình con (đây là cái gọi là "gitlink").

Hãy thử làm git ls-tree master <path-to-directory-containing-submodule>(hoặc chỉ git ls-tree masterkhi mô hình con sống trong thư mục cấp cao nhất).


14
Vâng. Tôi thấy nó ở đâu bây giờ. Và nó phù hợp với id từ git submodule status. Cảm ơn.
Abizern

7
chúng được lưu trữ ở đâu trong quá trình hợp nhất và mô hình con bị xung đột?
Adam Dymitruk

@AdamDymitruk, bạn đã tìm được câu trả lời chưa?
kgadek

1
Tại sao không đăng một câu hỏi mới, folks? :-)
Ivan Vučica

3
Có cách nào để thay đổi id cam kết này để trỏ đến một thứ khác mà không cần cập nhật cây làm việc không?
CMCDragonkai
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.