2009-06-24 2 views
5

Tài liệu nói: "Vì git-cherry so sánh changeset thay vì id cam kết (sha1), bạn có thể sử dụng git-cherry để tìm hiểu xem bạn có thực hiện cam kết cục bộ không đã được áp dụng theo một ID cam kết khác. "nhầm lẫn git cherry - không hoạt động như được mô tả trong doc

Hãy xem:

$ git cherry master release-1.1.0 | head -1 
- 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 
$ git show 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 
... 
(cherry picked from commit 409c61b3304373a73c787fdf9c08cc338934b74d) 
... 

git chương trình cho thấy changeset tương tự cho 409c .. và 533e

$ git br --contains 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 
release-1.1.0 
$ git br --contains 409c61b3304373a73c787fdf9c08cc338934b74d 
master 
release-1.0.4 

Điều đó có nghĩa rằng changeset là trong cả hai tổng thể và phát hành-1.1.0. Vì vậy, làm thế nào đến git anh đào cho thấy 533e ..?

Trả lời

3

Nó cũng cho biết "Các cam kết được so sánh với id bản vá của chúng, thu được từ chương trình git-patch-id.". Khi áp dụng khác biệt anh đào chọn của bạn, nó đã perchance kết thúc là một khác biệt hơi khác nhau?

Trong trường hợp đó không chỉ ID cam kết sẽ khác nhau, mà còn là id bản vá dưới dạng git-patch-id sẽ báo cáo các id bản vá khác nhau cho các cam kết và do đó chúng sẽ không được coi là nằm trong nhánh của nhau .

Thật dễ dàng để kiểm tra này:

git show 533e2559342910fbffa2be5b38fdd7f2ddb2ed53 | git-patch-id 
git show 409c61b3304373a73c787fdf9c08cc338934b74d | git-patch-id 

Nếu sha1 đầu tiên được trả về bởi git-vá-id khác nhau giữa chạy cả hai, đó là những gì đã xảy ra.

Luật sư lo lắng - Tôi chưa thử lý thuyết của mình, nhưng đó là cách tôi diễn giải các trang-man.

+1

Tôi không có git-patch-id trong đường dẫn của mình, nhưng 'git patch-id' không hoạt động. –