IntelliJ: Xem khác biệt của tất cả các tệp đã thay đổi giữa cục bộ và git commit / branch


102

Sử dụng trình xem khác biệt của IntelliJ là một cách rất hay để xem lại mã vì bạn có thể thực hiện các thay đổi trong phiên bản cục bộ của mình với tất cả các khả năng của trình chỉnh sửa mã IntelliJ (tái cấu trúc, hoàn thành, v.v.).

Rất tiếc, tôi chưa tìm ra cách thực hiện điều quan trọng nhất khi bạn thực hiện đánh giá mã trong IntelliJ, cụ thể là: Xem xét sự khác biệt của tất cả các tệp đã thay đổi trong cây làm việc (kiểm tra nhánh bạn muốn hợp nhất) và một nhánh khác (nhánh mà bạn định hợp nhất vào, ví dụ: "master).

Có ai biết cách để làm điều này không?


Hãy xem so sánh phần thuộc một trong blog của mình viết .
Vic

Câu hỏi này hiển thị các bước menu để hiển thị sự khác biệt cho tất cả các tệp so với một nhánh khác (tức là chính): stackoverflow.com/questions/40637055/…
Alan Thompson

Câu trả lời:


58

Mặc dù câu trả lời của Jon Tirsen là đúng, bạn cần phải xem qua toàn bộ nội dung để hiểu cách thực hiện điều đó.

Đây là những hình ảnh tương tự trong mac.

  1. Tôi hiện đang làm việc với hello_world và muốn so sánh với chủ nhân. nhập mô tả hình ảnh ở đây

  2. Tiếp theo một cửa sổ sẽ bật lên. Chọn Filesvà nhấncmd + d

nhập mô tả hình ảnh ở đây

  1. Một cửa sổ khác hiển thị khác. Bạn có thể thực hiện nhiều kiểu khác nhau. Sử dụng cmd + shift + ]cmd + shift + [chuyển đổi giữa các tệp.

nhập mô tả hình ảnh ở đây

Mẹo khác biệt: IntelliJ cung cấp các tính năng khác biệt nâng cao. Bạn có thể kiểm tra những điều đó trên hình ảnh thứ 3.


1
Làm cách nào để thực hiện việc này cho toàn bộ dự án, thay vì từng tệp?
JoeMjr2

@ JoeMjr2 Tôi thực sự không chắc liệu khả năng đó có khả dụng ngày hôm nay hay không. Bạn có thể điều hướng qua tất cả các tệp bằng cmd + shift + [cmd + shift + ](thay cmd bằng ctrl nếu bạn đang sử dụng windows).
ẩn số

Điều này đã được thay đổi trong bản cập nhật phiên bản 2020, hãy xem câu trả lời của tôi bên dưới để biết phương pháp cập nhật.
BlueYoshi

Bạn cũng có thể so sánh 2 bản sửa đổi bằng ID cam kết không?
Dan Macák

85

Điều này hiện đã được thực hiện. Để so sánh hai nhánh bạn làm:

  1. Kiểm tra một trong những chi nhánh bạn muốn so sánh với.
  2. Chọn nhánh bạn muốn so sánh trong cửa sổ bật lên nhánh Git trên thanh trạng thái ở phía dưới bên phải của cửa sổ IntelliJ. Một cửa sổ bật lên với một số tùy chọn được hiển thị.
  3. Chọn tùy chọn "So sánh".
  4. Theo mặc định, điều này hiển thị tất cả các cam kết, bạn cũng có thể chọn tab "Khác biệt" để hiển thị các thay đổi thực tế.

Tất cả điều này được mô tả chi tiết hơn nhiều trong một trong những bài đăng trên blog của họ .


4
Điều này cũng có thể xảy ra với các cam kết tùy ý thay vì các nhánh? Ý tôi là tôi có thể nhanh chóng tạo một nhánh cục bộ cho việc đó, nhưng điều đó có vẻ hơi rườm rà.
Robin

@ Hikaru755 bạn đã bao giờ tìm ra nó chưa? Tôi đang cố gắng làm điều tương tự
ycomp

@ycomp Không, đáng buồn là không. Bây giờ tôi đã hoàn thành việc tạo các nhánh tạm thời cho việc này.
Robin

1
@ Hikaru755 vâng tôi đã tạo một tmpchi nhánh, tôi đoán nó là đủ tốt. Có vẻ như quá mức cần thiết mặc dù
ycomp

3
@Robin có bạn có thể. Mở lịch sử của tệp, chọn hai cam kết và nhấn Ctrl-D. Nó cũng hoạt động giữa các nhánh khác nhau.
Victor Sergienko

9

Điều này được thực hiện ngay bây giờ. Bạn nhấp chuột phải vào dự án và chọn "Git - so sánh với nhánh ..." và chọn masternhánh. Làm xong. Khác biệt tất cả các tệp.


Đây là một cách tiếp cận tốt. Nếu bạn thấy tùy chọn chuyển sang màu xám, đó là do bạn không nhấp chuột phải vào thư mục dự án java / main / src.
jmojico

7

Điều này đã được thay đổi trong bản cập nhật phiên bản 2020:

Bây giờ bạn cần làm như sau:

  1. Kiểm tra một trong những chi nhánh bạn muốn so sánh.

  2. Mở menu Chi nhánh .

  3. Chọn chi nhánh khác mà bạn muốn so sánh.

  4. Chọn "Show Diff with Working Tree" .

nhập mô tả hình ảnh ở đây


Cảm ơn, tôi nhận ra rằng nó đã thay đổi nhưng không thể biết nó đã đi đến đâu.
fmquaglia

1
Đây là câu trả lời cập nhật nhất tại thời điểm này. Các câu trả lời khác có liên quan đến các phiên bản IntelliJ cũ hơn, nhưng không liên quan đến phiên bản hiện tại.
Pavel

1

Nếu bạn chỉ muốn so sánh tệp hiện đang mở của mình với một nhánh khác theo kiểu song song, chỉ cần vào VCS -> Git -> So sánh với Branch.


6
Điều đó trả lời một câu hỏi, nhưng không phải câu hỏi này! :)
Lambart

1

Nhấp chuột phải vào lớp và chọn tùy chọn Git nơi bạn sẽ thấy so sánh với tùy chọn nhánh, nơi bạn có thể chọn nhánh cụ thể.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.