Câu trả lời:
Các công việc sau đây cho tôi:
git diff master:foo foo
Trong quá khứ, nó có thể là:
git diff foo master:foo
--
để tách các tham số khỏi các đối số đường dẫn? git diff -- master:foo foo
git diff -- master:foo foo
không hoạt động - dường như coi arg master:foo
là tên tệp không tồn tại (và bỏ qua nó) thay vì tệp trong một nhánh. Hãy thử chuyển đổi 2 đối số cuối cùng - nếu nó hoạt động, so sánh khác phải được đảo ngược, nhưng đầu ra không thay đổi.
git diff master:foo foo
nhưng không phải ngược lại. Tôi cũng không hiểu. Với git 1.7.9.5 / Ubuntu 12.04 ít nhất tôi có thể làm git diff -R master:foo foo
để có được sự khác biệt mà tôi thực sự muốn. Khi tôi thử điều đó với msysgit 1.9.4 / Windows 7 x64 tôi nhận được fatal: unable to read 0000000000000000000000000000000000000000
. Không có -R
tôi nhận được thông báo lỗi giống như bạn với git 1.7.9.5, nhưng với 1.9.4 tôi nhận được fatal: master:foo: no such path in the working tree
.
Bạn đang cố gắng so sánh cây làm việc của mình với một tên nhánh cụ thể, vì vậy bạn muốn điều này:
git diff master -- foo
Đó là từ hình thức git-diff này (xem trang chủ git-diff)
git diff [--options] <commit> [--] [<path>...]
This form is to view the changes you have in your working tree
relative to the named <commit>. You can use HEAD to compare it with
the latest commit, or a branch name to compare with the tip of a
different branch.
FYI, cũng có một tùy chọn --cached
(aka --staged
) để xem khác biệt của những gì bạn đã dàn dựng, thay vì mọi thứ trong cây làm việc của bạn:
git diff [--options] --cached [<commit>] [--] [<path>...]
This form is to view the changes you staged for the next commit
relative to the named <commit>.
...
--staged is a synonym of --cached.
Cũng thế: git diff master..feature foo
Vì git diff foo master:foo
không làm việc trên các thư mục cho tôi.
git diff branch1:foo master:foo
git diff mybranch master -- file
cũng nên làm việc
git diff deployment master -- file
và git diff master deployment -- file
hoạt động như mong đợi với bất kỳ 2 chi nhánh nào .
git diff
, tôi luôn nghĩ về stackoverflow.com/questions/5256249/git-diff-doesnt-show-enough/