git diff `git merge-base master branch`..branch
Hợp nhất cơ sở là điểm mà branch
chuyển hướng từ master
.
Git diff hỗ trợ một cú pháp đặc biệt cho việc này:
git diff master...branch
Bạn không được hoán đổi các bên vì sau đó bạn sẽ có được chi nhánh khác. Bạn muốn biết những gì đã thay đổi branch
kể từ khi nó chuyển hướng từmaster
, không phải cách khác.
Liên quan lỏng lẻo:
Lưu ý rằng ..
và ...
cú pháp không có cùng ngữ nghĩa như trong các công cụ Git khác. Nó khác với ý nghĩa được chỉ định trong man gitrevisions
.
Trích dẫn man git-diff
:
git diff [--options] <commit> <commit> [--] [<path>…]
Điều này là để xem những thay đổi giữa hai tùy ý <commit>
.
git diff [--options] <commit>..<commit> [--] [<path>…]
Điều này đồng nghĩa với hình thức trước đó. Nếu <commit>
một bên bị bỏ qua, nó sẽ có tác dụng tương tự như sử dụng HEAD
thay thế.
git diff [--options] <commit>...<commit> [--] [<path>…]
Hình thức này là để xem các thay đổi trên nhánh chứa và lên đến lần thứ hai <commit>
, bắt đầu từ một tổ tiên chung của cả hai <commit>
. " git diff A...B
" tương đương với " git diff $(git-merge-base A B) B
". Bạn có thể bỏ qua bất kỳ một trong số <commit>
đó, có tác dụng tương tự như sử dụng HEAD
thay thế.
Chỉ trong trường hợp nếu bạn đang làm một cái gì đó kỳ lạ, cần lưu ý rằng tất cả các <commit>
mô tả trong phần trên, ngoại trừ trong hai hình thức cuối cùng sử dụng ký hiệu "..", có thể là bất kỳ <tree>
.
Để biết danh sách đầy đủ hơn về các cách đánh vần <commit>
, hãy xem phần "ĐẶC BIỆT CÁCH MẠNG" gitrevisions[7]
. Tuy nhiên, "diff" là về việc so sánh hai điểm cuối, không phải phạm vi và các ký hiệu phạm vi (" <commit>..<commit>
" và " <commit>...<commit>
") không có nghĩa là một phạm vi như được định nghĩa trong phần "ĐẶC BIỆT RANGES" trong gitrevisions[7]
.
git diff master..branch
. Bạn có thể rút ngắn nó xuốnggit diff master..
nếu bạn đang ở chi nhánh. Cácr1..r2
cú pháp là viết tắt của^r1 r2
mà có nghĩa là "cho tôi tất cả mọi thứ mà xuống từr2
và không thể truy cập từr1
".git help gitrevisions
có thông tin về các cú pháp khác nhau mà bạn có thể sử dụng.