Sửa: Tất nhiên, dễ dàng, rõ ràng và hơn câu trả lời miễn phí -engineering là git status
, dưới dạng kostixnotes. Điểm bất lợi của việc này là git status
kiểm tra trạng thái của chỉ mục so với bản sao làm việc, chậm, trong khi bên dưới chỉ kiểm tra chỉ mục, hoạt động nhanh hơn nhiều.
Để lấy tên của các tệp bị xung đột, hãy sử dụng git ls-files --unmerged
.
$ git ls-files --unmerged
100755 f50c20668c7221fa6f8beea26b7a8eb9c0ae36e4 1 path/to/conflicted_file
100755 d0f6000e67d81ad1909500a4abca6138d18139fa 2 path/to/conflicted_file
100755 4cb5ada73fbe1c314f68c905a62180c8e93af3ba 3 path/to/conflicted_file
Để dễ dàng, tôi đã điều sau đây trong tập tin ~/.gitconfig
của tôi (Tôi không thể khẳng định tín dụng, nhưng tôi không thể nhớ nguồn gốc):
[alias]
conflicts = !git ls-files --unmerged | cut -f2 | sort -u
này mang lại cho tôi:
$ git conflicts
path/to/conflicted_file
Để tìm ra số xung đột trong một tệp, tôi chỉ sử dụng grep
cho phần =======
của điểm đánh dấu xung đột:
$ grep -c '^=======$' path/to/conflicted_file
2
Bạn có thể thêm dòng sau vào ~/.gitconfig
của bạn cũng như dòng conflicts
trên:
[alias]
count-conflicts = !grep -c '^=======$'
count-all-conflicts = !grep -c '^=======$' $(git conflicts)
này sẽ cung cấp cho bạn:
$ git conflicts
path/to/a/conflicted_file
path/to/another/different_conflicted_file
$ git count-conflicts path/to/a/conflicted_file
2
$ git count-all-conflicts
5
Nguồn
2012-06-13 12:08:32
Có, nhưng ... có chuyển đổi nào để hiển thị * chỉ * các tệp xung đột không? – shytikov
@AlexeyShytikov, tôi không biết rõ, nhưng từ hướng dẫn, có vẻ như trạng thái 'git --short' có thể mã hóa trạng thái của mỗi tệp được liệt kê bằng hai ký tự - xem phần" Định dạng ngắn ". Tôi nghĩ rằng nó có thể quấn một cuộc gọi đến 'git status --short' trong một kịch bản lệnh shell mà sẽ' sed' hoặc 'grep' chỉ các bit có liên quan của đầu ra. – kostix
Mặt khác, câu trả lời @me_and đã yêu cầu viết kịch bản, vì vậy có thể sẽ hợp lý hơn nếu dùng phương pháp tiếp cận của anh ấy (và do đó thực hiện lệnh sứ của riêng bạn). – kostix