Có hai kịch bản để so sánh các tệp:
Kịch bản 1: So sánh các tệp tại các nhánh từ xa (cả hai nhánh nên tồn tại trên kho lưu trữ từ xa)
Kịch bản 2: So sánh các tệp cục bộ (tại bản sao vùng làm việc cục bộ) với các tệp tại kho lưu trữ từ xa.
Logic rất đơn giản. Nếu bạn cung cấp hai tên nhánh cho diff, nó sẽ luôn so sánh các nhánh từ xa và nếu bạn chỉ cung cấp một tên nhánh, nó sẽ luôn so sánh bản sao làm việc cục bộ của bạn với repo từ xa (tên bạn đã cung cấp). Bạn có thể sử dụng phạm vi để cung cấp kho từ xa.
ví dụ: Thanh toán chi nhánh
git checkout branch1
git diff branch2 [filename]
trong trường hợp này, nếu bạn cung cấp tên tệp, nó sẽ so sánh bản sao tên tệp cục bộ của bạn với nhánh từ xa có tên là " Branch2 ".
git diff branch1 branch2 [filename]
trong trường hợp này, nó sẽ so sánh tên tệp từ các nhánh từ xa có tên là " Branch1 " so với " Branch2 "
git diff ..branch2 [filename]
trong trường hợp này cũng vậy, nó sẽ so sánh tên tệp từ các nhánh từ xa có tên " Branch1 " so với " Branch2 ". Vì vậy, nó giống như trên. Tuy nhiên, nếu bạn vừa tạo một nhánh từ một nhánh khác, giả sử "master" và nhánh hiện tại của bạn không tồn tại trên kho lưu trữ từ xa, nó sẽ so sánh " master " từ xa với " Branch2 " từ xa .
Hy vọng nó hữu ích.
git diff branch1 branch2 myfile.cs
. (--
Không cần thiết nữa, vì nó chỉ có thể mất tối đa hai đối số sửa đổi.)