2011-01-10 30 views
218

Tôi có một chi nhánh địa phương theo dõi chi nhánh từ xa/chủ. Sau khi chạy git-pullgit-log, nhật ký sẽ hiển thị tất cả các cam kết trong nhánh theo dõi từ xa cũng như chi nhánh hiện tại. Tuy nhiên, vì có quá nhiều thay đổi được thực hiện đối với chi nhánh từ xa, tôi chỉ cần xem các cam kết được thực hiện cho chi nhánh địa phương hiện tại.Làm cách nào để chạy nhật ký git chỉ xem các thay đổi cho một chi nhánh cụ thể?

Lệnh Git sẽ sử dụng để chỉ hiển thị các cam kết cho một chi nhánh cụ thể là gì?

Ghi chú:

Cấu hình thông tin:

[branch "my-branch"] 
    remote = origin 
    merge = refs/heads/master 

Trả lời

312

Giả sử rằng chi nhánh của bạn được tạo ra của master:

git cherry -v master 

hoặc

git log master.. 

Nếu bạn chi nhánh r đã được thực hiện tắt của origin/master, sau đó nói origin/master thay vì master.

+65

Hoàn hảo! 'git log --no-merges master..' chính là thứ tôi cần. –

+6

lưu ý rằng điều này không tính đến lựa chọn của anh đào. – eis

+1

@HighwayofLife: '--no-merges' có thể xuất hiện rằng nó chỉ hiển thị các cam kết từ một nhánh cụ thể, nhưng nó thực sự chỉ hiển thị các cam kết không dẫn đến việc hợp nhất – rynmrtn

36

Sử dụng:

git log --graph --abbrev-commit --decorate --first-parent <branch_name> 

Nó chỉ dành cho các chi nhánh mục tiêu (tất nhiên --graph, --abbrev-cam --decorate là polisihing hơn).

Các tùy chọn quan trọng là --Trước-mẹ: "Hãy làm theo chỉ phụ huynh cam kết đầu tiên khi nhìn thấy một hợp nhất cam kết" (https://git-scm.com/docs/git-log)

Nó ngăn ngừa sự cam kết dĩa từ được hiển thị.

+11

'--first-parent ' là tùy chọn. công trinh ! – parasrish

+3

Trường hợp tên chi nhánh là gì, chi nhánh có lịch sử mà tôi chỉ muốn xem? Trên chi nhánh chỉ có 3 thay đổi, điều này đang hiển thị cho tôi hàng trăm thay đổi. –

+1

'--first-parent ' cũng làm việc cho tôi! Tôi đã kết thúc với một bí danh để 'git log --first-parent $ current_branch_name --no-merges'. Để trả lời @EdRandall, nó sẽ hiển thị các cam kết trên nhánh + các commit từ nhánh nó được phân nhánh. Ví dụ: – rachel

0

Vấn đề tôi gặp phải, mà tôi nghĩ là tương tự như vậy, là vị thầy quá xa phía trước điểm chi nhánh của tôi để lịch sử hữu ích. (Di chuyển đến điểm chi nhánh sẽ phải mất quá nhiều thời gian.)

Sau một số thử và sai, điều này đã cho tôi khoảng những gì tôi muốn:

git log --graph --decorate --oneline --all ^master^! 
1

Nếu bạn muốn chỉ những cam kết được thực hiện bằng cách bạn trong một cụ thể chi nhánh, sử dụng lệnh dưới đây.

git log branch_name --author='Dyaniyal' 
Các vấn đề liên quan