Câu trả lời:
Đơn giản git log <hash>
được gọi cho một cam kết hợp nhất hiển thị băm viết tắt của cha mẹ của nó:
$ git log -1 395f65d
commit 395f65d438b13fb1fded88a330dc06c3b0951046
Merge: 9901923 d28790d
...
git
đầu ra cha mẹ theo số của họ: hàm băm đầu tiên (ngoài cùng bên trái) dành cho cha mẹ đầu tiên, v.v.
Nếu tất cả những gì bạn muốn chỉ là băm, hai lựa chọn tương đương là:
$ git log --pretty=%P -n 1 <commit>
$ git show -s --pretty=%P <commit>
git rev-list
cũng có thể hiển thị các giá trị băm của cha mẹ, mặc dù trước tiên nó sẽ liệt kê hàm băm cho một cam kết:
$ git rev-list --parents -n 1 <commit>
Nếu bạn muốn kiểm tra các phụ huynh, bạn có thể tham khảo trực tiếp với họ bằng carat như <commit>^1
và <commit>^2
, ví dụ như:
git show <commit>^1
Điều này không khái quát; đối với hợp nhất bạch tuộc, bạn có thể tham khảo cha mẹ thứ n là <commit>^n
. Bạn có thể tham khảo tất cả các bậc cha mẹ với <commit>^@
, mặc dù điều này không hoạt động khi một cam kết duy nhất được yêu cầu. Hậu tố bổ sung có thể xuất hiện sau khi n th cú pháp cha mẹ (ví dụ <commit>^2^
, <commit>^2^@
), trong khi họ có thể không phải sau ^@
( <commit>^@^
không hợp lệ). Để biết thêm về cú pháp này, đọc rev-parse
trang người đàn ông.
git log
và git show
đầu ra những thứ rất khác nhau khi chỉ có một cha mẹ. Thích git log
nếu bạn muốn sự nhất quán.
git (v2.17.1)
. Tôi không thấy Merge
tập tin trong git log -1
đầu ra.