Xem nhật ký git mà không có cam kết hợp nhất


88

Tôi đang cố gắng xem các cam kết được thực hiện bởi một người dùng cụ thể và muốn xóa mọi hợp nhất do người dùng đó thực hiện khỏi đầu ra. Làm thế nào tôi có thể làm như vậy?

Tôi có thể kiểm tra các cam kết của một người dùng đang sử dụng git log --author=<name>, nhưng không thể xóa các cam kết hợp nhất trong đầu ra.

Tái bút: Xung đột hợp nhất không xảy ra trong quy trình làm việc của repo được đề cập, tất cả các nhánh đều được khôi phục trước khi hợp nhất vào chính vì vậy có thể an toàn khi xóa các cam kết hợp nhất khỏi đầu ra và tương tự, hai nhánh tính năng không được hợp nhất với nhau. khả năng.


2
Điều gì sẽ xảy ra nếu việc hợp nhất có xung đột và anh ta phải giải quyết nó?
Joe Phillips

2
@JoePhilllips Điều đó không xảy ra trong quy trình làm việc của repo được đề cập, tất cả các nhánh đều được phục hồi trước khi hợp nhất thành chính.
mu 無

6
sử dụnggit log --no-merges
0xAX

1
@ 0xAX Bạn có thể đăng nó như một câu trả lời, tôi sẽ chấp nhận nó.
mu 無

Câu trả lời:


135

sử dụng

git log --author=<name> --no-merges

Ngoài ra, --first-parenttùy chọn có thể cung cấp kết quả hữu ích cho bạn:

--first-parent Chỉ thực hiện theo cam kết gốc đầu tiên khi thấy một cam kết hợp nhất. Tùy chọn này có thể cung cấp cái nhìn tổng quan hơn khi xem sự phát triển của một nhánh chủ đề cụ thể, bởi vì việc hợp nhất thành một nhánh chủ đề có xu hướng chỉ điều chỉnh để cập nhật ngược dòng theo thời gian và tùy chọn này cho phép bạn bỏ qua các cam kết riêng lẻ được đưa vào lịch sử của bạn bằng cách hợp nhất như vậy. Không thể kết hợp với --bisect.


thậm chí đẹp hơn với --pretty=format:"%h%x09%an%x09%ad%x09%s"
k1eran

1
@ k1eran này truncates cam kết cơ thể (giả sử có một)
Erythros

1
@Erythros đã hiểu và tôi thấy hữu ích khi có được một bản tóm tắt ngắn gọn có thể đọc được về các cam kết.
k1eran

Hoặc bao gồm màu sắc và biểu đồlog --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --first-parent
Highmastdon

18

Bạn có thể bỏ qua các hợp nhất với --no-merges:

git log --no-merges --author=<name>

Xem trang git log để biết thêm chi tiết.


2
Điều này chỉ loại trừ các cam kết hợp nhất. Nhưng các commit bình thường bên trong nhánh ngược dòng đó vẫn có thể nhìn thấy được.
Shiplu Mokaddim
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.