Làm thế nào để sử dụng Git Log để định dạng lịch sử cam kết?



Git là một công cụ giúp sắp xếp và quản lý mã nguồn của các ứng dụng của bạn. Tìm hiểu tất cả về lệnh lịch sử định dạng git log và cách sử dụng nó.

Trong bài viết này, chúng tôi sẽ thảo luận về một số tùy chọn nâng cao để định dạng và in các bản ghi cam kết để tìm nạp thông tin mà bạn cần từ lịch sử nhật ký dự án của mình. Vì chúng ta đã biết, giữ một Nhật ký về những thay đổi được cam kết đối với lịch sử dự án, bây giờ chúng ta sẽ khám phá thêm các cách hữu ích của lệnh ‘git log’.

Đầu tiên, tôi đang chuyển sang / kiểm tra nhánh “feature1” để có lịch sử thuận tiện và ngắn hơn.
Sử dụng các lệnh -





$cd myProj–Chuyển sang dự án git

$tính năng thanh toán git1–Đẩy đến nhánh ‘feature1’



1. Định dạng cam kết

1.1 In đẹp nội dung đầu ra ở định dạng nhất định

Cú pháp: git log --pretty [=]

Ở đâu, có thể là một trong số một đường thẳng, ngắn, Trung bình, đầy, đầy hơn, e-mail, thô định dạng:
Khi nào = một phần bị bỏ qua, nó mặc định là Trung bình.

1.1.1 –pretty = oneline

Bản ghi cam kết in đẹp trong một 'dòng đơn'
Chỉ huy: git log --pretty = oneline
Định dạng đầu ra theo trình tự:




Cam kết - Lịch sử định dạng nhật ký Git - Edureka

1.1.2 –pretty = ngắn

Định dạng đầu ra cam kết 'ngắn' theo định dạng:
cam kết (đổi tên)
Tác giả:



1.1.3 –pretty = trung bình

Chỉ huy: git log --pretty = phương tiện
In đầu ra cam kết ở định dạng 'phương tiện':
cam kết
Tác giả :
Ngày:


1.1.4 –pretty = đầy đủ

Chỉ huy: git log --pretty = full
Đầu ra có định dạng:
cam kết (đổi tên)
Tác giả:
Cam kết:


1.1.5 –pretty = đầy đủ hơn

Chỉ huy: git log --pretty = fuller
cam kết (đổi tên)
Tác giả:
Tác giả Ngày :
Cam kết:
Cuộc hẹn quan trọng:


1.1.6 –pretty = email

Chỉ huy: git log --pretty = email
In đầu ra nhật ký ở định dạng kiểu email:
Từ
Từ:
Ngày:
Môn học: [VÁ]


1.1.7 –pretty = thô

Chỉ huy: git log --pretty = raw
Định dạng đầu ra bản ghi thô hiển thị toàn bộ cam kết chính xác như được lưu trữ trong đối tượng cam kết.
cam kết
cây
cha mẹ
tác giả
cam kết

1.1.8 –format:: Định dạng tùy chỉnh

Định dạng cho phép bạn chỉ định thông tin nào của đối tượng cam kết mà bạn muốn in trong nhật ký đầu ra cam kết
Hãy để chúng tôi xem xét các trình giữ chỗ khác nhau mà tùy chọn này cung cấp giống như hàm ‘C printf’ với sự trợ giúp của các đoạn mã:

Chỉ huy: git log --pretty = format: '% h% ad | % s% d [% an] '--date = short
Định dạng đầu ra:
| [tên tác giả]

% h = Id hash-id / sha1commit rút gọn
% H = id dài sha-1
%đến = ngày tác giả
%S = dòng tiêu đề chủ đề cam kết
% d = tên con trỏ tham chiếu (nhánh, thẻ)
% an = tên tác giả
-ngày = short: Chỉ in ngày chứ không phải giờ ở định dạng có thể đọc được

Bây giờ, làm thế nào về việc làm cho đầu ra này thân thiện hơn với con người, sử dụng màu sắc.
Chỉ huy:
git log --pretty = format: '% C (yellow)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--date = short


Một số trình giữ chỗ khác được sử dụng trong đoạn mã trên là:
% C (màu vàng) : Chuyển chuỗi sau thành màu vàng
% Creset : Đặt lại chuỗi sau về màu mặc định (trắng)
% Cgreen : thay đổi chuỗi sau thành màu xanh lục
%Tôi đoán: Thay đổi chuỗi sau thành màu đỏ
% Cblue: Đặt tên tác giả bằng màu xanh lam

Bạn không cần phải nhớ và viết toàn bộ lệnh mỗi lần, chỉ cần sử dụng một tên ngắn gọn như bí danh git như hình bên dưới:
Chỉ huy:
git config --global alias.c-hist 'log --pretty = format:'% C (yellow)% h% Creset% ad | % Cgreen% s% Creset% Cred% d% Creset% Cblue [% an] '--date = short'

'C-hist' đại diện c tùy chỉnh- lịch sử ory
Vì vậy, như bạn đã thấy, tôi đang thiết lập toàn cầu của mình cấu hình git tệp với các giá trị.

java đợi và thông báo ví dụ

Bây giờ, để kiểm tra lịch sử của nhánh hiện tại, tất cả những gì bạn phải làm là chạy lệnh, như sau:
Chỉ huy: đi c-hist

1.2 –abbrev-commit: Rút ngắn git commit hash-id

Chỉ huy: git log --abbrev-commit
Tên đối tượng cam kết thập lục phân 40 byte đầy đủ được rút ngắn thành 7 byte mặc định.


Hãy để chúng tôi câu lạc bộ nó với ‘--một đường thẳngTùy chọn ‘để xem thuận tiện, như vậy:
Chỉ huy: git log --abbrev-commit --oneline

Điều thú vị hơn là bạn cũng có thể chỉ định độ dài byte của id sha-1 bằng tùy chọn ‘–abbrev =’, như được hiển thị bên dưới:
Chỉ huy: git log --abbrev-commit --abbrev = 5 --oneline



Rõ ràng, các id sha-1 được đánh dấu được giảm xuống kích thước 5 byte.

1.3 –không viết tắtv-cam kết

Hiển thị tên đối tượng cam kết thập lục phân 40 byte đầy đủ.
Điều này phủ nhận –Abbrev-cam kết và những tùy chọn đó ngụ ý
chẳng hạn như “–oneline”.
Chỉ huy: git log --pretty = oneline --no-shorv-commit



1,4 –ngày tương đối

Chỉ huy: git log --relative-date

Vui lòng lưu ý, thời gian được đánh dấu này có thể thay đổi theo thời gian bạn thực hiện lệnh trên hệ thống của mình.

1,5 – ngày =

Bạn cũng có thể định dạng ngày nhật ký cam kết theo bất kỳ tùy chọn định dạng nào sau đây:

1.5.1 –date = tương đối

Chỉ huy :git log - ngày = tương đối
Điều này đồng nghĩa với lệnh trên “git log --relative-date”Và in các cam kết giống nhau.

1.5.2 –date = local

Chỉ huy : git log --date = local

1.5.3 –date = iso

Chỉ huy: git log --date = iso

1.5.4 –date = iso-nghiêm ngặt

Chỉ huy: git log --date = iso-nghiêm ngặt

1.5.5 –date = rfc

Chỉ huy: git log --date = rfc

1.5.6 –date = ngắn

Chỉ huy: git log --date = short

1.5.7 –date = raw (hiển thị ngày bằng giây)

Chỉ huy: git log --date = raw
In thời gian dưới dạng giây kể từ khi unix epoc thời gian (01/01/1970) theo sau là múi giờ.

1.5.8 –date = con người

Chỉ huy: git log --date = human

1.5.9 –date = unix

Hiển thị ngày là unix epoc (UTC) thời gian.
Chỉ huy: git log --date = unix

1,6 – cha mẹ

Cũng in ra cha mẹ của mỗi cam kết ở định dạng:
Chỉ huy: git log - cha mẹ
Lệnh đầu ra Oneliner: git log - cha mẹ --oneline

Những điểm cần lưu ý:
C366419 là một cam kết hợp nhất, do đó có 2 cha mẹ tương ứng: phíb30c 4920adc
Tương tự

1d67b50 là một cam kết hợp nhất, kết quả của việc hợp nhất f2ff2e4 abb694b
078f9f5 là một cam kết hợp nhất được tạo bằng cách hợp nhất 9a2412e ab3a5e5
Trong khi, 86792c6 là cam kết ban đầu, do đó không có cha mẹ.

1,7 – trẻ em

Cũng in các em theo mẫu
Chỉ huy: git log - trẻ em --oneline

Ghi chú :
006b9ce là bản cam kết mới nhất, do đó chưa có đối tượng cam kết con nào. Thay đổi tiếp theo mà bạn thực hiện và cam kết trên nhánh này sẽ là đối tượng cam kết con của id sha-1 mới nhất này.

1,8 – đồ thị

Vẽ một biểu diễn đồ họa dựa trên văn bản của lịch sử cam kết trước id sha-1.
Chỉ huy: git log --graph
Cải thiện đầu ra oneliner: git log --graph --oneline


Điều này cho phép bạn hiểu khi nào, làm thế nào và tại sao và các chi nhánh khác được hợp nhất vào chi nhánh hiện đã kiểm tra.

1.9 –show-linear-break

Chỉ huy: git log --show-linear-break
Đây là một lệnh hữu ích, để chỉ ra một rào cản giữa 2 commit liên tiếp không thuộc một nhánh tuyến tính, hay nói cách khác là các commit đến từ các nhánh khác nhau.


So sánh đầu ra ở trên với đầu ra lệnh ‘git log –graph’ cho thấy rõ ràng cách các cam kết “ngắt tuyến tính” đã được hợp nhất.

Phần thưởng: Tóm tắt kết quả git log: ‘git shortlog’

Các 'git shortlogLệnh ‘phân loại tác giả bản ghi cam kết khôn ngoan và in ra một bản tóm tắt tổng quan, cho biết các cam kết được thực hiện bởi mỗi tác giả.
Chỉ huy: git log shortlog

Chỉ huy : git log shortlog -s
-s là viết tắt của –summary, loại bỏ mô tả cam kết và chỉ in số lượng cam kết của mỗi tác giả, như sau:

Hơn nữa, bạn cũng có thể định dạng đầu ra bằng cách sử dụng các trình giữ chỗ tương tự như đã thảo luận trong ‘--pretty = định dạng' Lựa chọn
Hãy thử lệnh: git shortlog --format = '% h | %S'

Do đó, bạn sẽ đồng ý rằng đầu ra này có ý nghĩa hơn vì nó hiển thị id và id cho từng tác giả cùng với tổng số lần cam kết.

Ghi chú : Điều thú vị cần lưu ý là bạn có thể rất dễ dàng tìm thấy chi nhánh đã thực hiện một cam kết cụ thể. Nó là giá trị thảo luận này trong các bài viết sắp tới chuyên sâu.

Vì vậy, với điều đó, chúng ta sẽ kết thúc điều nàyLịch sử định dạng nhật ký Gitblog, tôi hy vọng bạn tìm thấy nó thông tin.

Trong bài đăng này, chúng tôi đã tìm hiểu một số kỹ thuật định dạng in thông tin dự án theo cách thân thiện và tùy chỉnh hơn. Bây giờ bạn nên biết cách sử dụng hiệu quả các tham số của lệnh ‘git log’ để lấy ra bất kỳ thông tin nào bạn cần về mã nguồn từ lịch sử đã cam kết của bạn. Vì vậy, với điều đó, chúng ta đến phần cuối của bài viết này, tôi hy vọng bạn thấy nó có nhiều thông tin.

Nếu bạn muốn tìm hiểu thêm, bạn có thể xem phần này của Edureka, một công ty học trực tuyến đáng tin cậy với mạng lưới hơn 250.000 người học hài lòng trải dài trên toàn cầu. Khóa đào tạo Chứng chỉ Edureka DevOps giúp người học hiểu DevOps là gì và có được kiến ​​thức chuyên môn về các quy trình và công cụ DevOps khác nhau như Puppet, Jenkins, Nagios, Ansible, Chef, Saltstack và GIT để tự động hóa nhiều bước trong SDLC.

Có một câu hỏi cho chúng tôi? Vui lòng đề cập đến nó trong phần nhận xét của bài viết này về “Lịch sử định dạng nhật ký Git” và chúng tôi sẽ liên hệ lại với bạn.