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ôvà đị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ự:
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ẳng
Tù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 và 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 và abb694b
078f9f5 là một cam kết hợp nhất được tạo bằng cách hợp nhất 9a2412e và 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 shortlog
Lệ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.