Cách kiểm tra lịch sử dự án bằng nhật ký Git

Cách kiểm tra lịch sử dự án bằng nhật ký Git

Một trong những dịch vụ cơ bản nhất được cung cấp bởi Git là lịch sử dự án. Vì Git theo dõi tất cả các thay đổi đối với các tệp được thực hiện trong kho lưu trữ, nên nó có thể cung cấp các tính năng ghi nhật ký rất mạnh mẽ. Bạn có thể truy vấn lịch sử của dự án theo nhiều cách khác nhau và bạn có thể trích xuất và hiển thị các dữ liệu khác nhau bằng một lệnh linh hoạt.





Các git log lệnh rất lớn, lệnh lớn nhất so với bất kỳ lệnh Git thông thường nào. Sách hướng dẫn của nó dài hơn 2.500 dòng. May mắn thay, git log cung cấp nhiều hành vi hữu ích nhất của nó chỉ từ một vài tùy chọn chính.





Ghi nhật ký cơ bản với hành vi mặc định

Theo mặc định, git log hiển thị danh sách cam kết theo trình tự thời gian ngược lại. Mỗi cam kết bao gồm mã băm, tác giả, ngày tháng và thông báo cam kết:





Lệnh sử dụng một máy nhắn tin (ví dụ: ít hơn, nhiều hơn) để hiển thị đầu ra đầy đủ để bạn có thể dễ dàng điều hướng kết quả. Bạn có thể cấu hình Git để sử dụng một chương trình bạn chọn, chẳng hạn như máy nhắn tin nhiều nhất.

Đây là một số đầu ra nhật ký git từ kho lưu trữ mã nguồn git chinh no:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

Kết quả bắt đầu với mã băm cam kết ( 670 ...) theo sau là danh sách các nhánh hiện trỏ đến cam kết đó ( HEAD -> master , Vân vân.)

cách tăng tốc độ internet trên điện thoại

Dòng tiếp theo mô tả tác giả của cam kết này, cho biết tên và địa chỉ email của họ.





Ngày và giờ đầy đủ của cam kết theo dòng tiếp theo.

Cuối cùng, nội dung đầy đủ của thông báo cam kết xuất hiện. Bạn có thể kiểm soát hầu hết mọi thứ khác mà git log cung cấp với các tùy chọn dòng lệnh. Có hai loại tùy chọn chính:





  • Định dạng, xác định cách Git hiển thị từng cam kết.
  • Lọc, xác định cam kết nào git log bao gồm.

Ngoài các tùy chọn dòng lệnh, git log chấp nhận các đối số chỉ định tệp, cam kết, nhánh hoặc các loại tham chiếu khác. Những điều này áp dụng lọc thêm.

Định dạng đầu ra nhật ký Git

Một trong những điều chỉnh đơn giản nhất là --một đường thẳng tùy chọn tạo ra một đầu ra rất ngắn gọn:

git log --oneline

Mỗi dòng trong nhật ký bây giờ chỉ chứa một băm cam kết viết tắt và chủ đề của thông báo cam kết. Đây là một cách tuyệt vời để có được cái nhìn tổng quan về những cam kết gần đây đối với dự án:

Rất tiếc, không có ngữ cảnh nào khác, thông tin này không phải lúc nào cũng hữu ích. Nó có thể cho bạn cảm giác mơ hồ về dự án, nhưng nó thiếu ngày tháng và các thông tin hữu ích khác về tác giả và tệp.

Xem Đồ thị Nhánh

Các - đồ thị tùy chọn cho phép bạn hình dung mối quan hệ giữa các chi nhánh. Nó rất cơ bản nhưng có thể giúp gỡ rối một lịch sử phức tạp.

git log --oneline --graph

Có liên quan: Cách tạo một chi nhánh mới trong Git

Đầu ra khá tùy chỉnh

Bạn có thể đạt được định dạng phức tạp hơn bằng cách chỉ định nó chi tiết bằng cách sử dụng --khá Lựa chọn. Cú pháp đi từ rất đơn giản đến phức tạp hơn nhiều, vì vậy tham khảo sách hướng dẫn để biết chi tiết đầy đủ .

làm thế nào để biết khi nào tài khoản google của bạn được tạo
git log --pretty=short

Về cơ bản giống như git log không có ngày tháng hoặc tin nhắn đầy đủ:

git log --pretty=oneline

Tương đương với git log --oneline .

git log --pretty=fuller

Bao gồm rất nhiều chi tiết. Nó thậm chí còn phân tách tác giả và người cam kết, về lý thuyết, có thể là những người khác nhau:

Với định dạng: biến thể, bạn có thể cung cấp một chuỗi chứa bất kỳ nội dung nào bạn muốn, bao gồm cả phần giữ chỗ được thay thế bằng nhiều dữ liệu khác nhau. Dưới đây là một số trình giữ chỗ mẫu:

  • %NS cam kết băm
  • %NS viết tắt cam kết băm
  • %đến ngày tác giả
  • %Với ngày tác giả, người thân
  • %NS cam kết chủ đề tin nhắn
  • % NS cam kết nội dung tin nhắn
  • %P dấu ngoặc đơn viết tắt

Bạn có thể thêm các ký tự cố định vào đầu ra và tô màu cho nó. Ví dụ này cũng cho thấy một biến thể về định dạng ngày:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

Lưu ý rằng dấu ngoặc bao quanh ngày. Dù bạn chọn định dạng nào, nếu bạn muốn đầu ra hữu ích trong đường ống hoặc cho các hình thức xử lý văn bản khác, bạn nên xem xét cách phân định ranh giới từng phần của đầu ra.

Hiển thị các sai lệch trong Nhật ký

Một chi tiết quan trọng khi xem lịch sử của kho lưu trữ là các điểm khác biệt. Chúng đại diện cho những gì thực sự đã thay đổi trong mã! Đối với người mới bắt đầu, bạn có thể nhận được một bản tóm tắt các thay đổi cùng với mỗi cam kết bằng cách sử dụng --shortstat :

git log --shortstat

Điều này thêm một dòng như:

1 file changed, 48 insertions(+), 2 deletions(-)

Ở cuối mỗi cam kết. Bạn sẽ thường thấy loại tóm tắt này — chẳng hạn như trên khắp các trang trên GitHub — và đó là một cách hữu ích để nhanh chóng đánh giá phạm vi của một cam kết cụ thể. Để biết thêm thông tin chi tiết, bạn có thể bao gồm đầu ra bản vá đầy đủ (khác biệt) bằng cách sử dụng -P lá cờ:

git log -p

Lọc đầu ra nhật ký Git

Dù bạn áp dụng định dạng nào, bạn vẫn sẽ thấy nhật ký đầy đủ của tất cả các cam kết trong nhánh hiện tại. Mặc dù Git chia chúng thành các trang, nhưng nó vẫn có thể là rất nhiều đầu ra. Các tùy chọn sau đây cho phép bạn tùy chỉnh các cam kết mà nhật ký bao gồm.

Hạn chế theo số lượng

Nếu bạn chỉ muốn cắt bớt kết quả để hiển thị một số cam kết gần đây nhất, hãy sử dụng -[con số] cú pháp:

git log -2

Hạn chế theo ngày

Để hạn chế tập hợp các cam kết trong một phạm vi ngày nhất định, hãy sử dụng --từ ( --sau ) và --cho đến khi ( --trước ) tùy chọn. Mỗi cái này lấy ngày ở định dạng ISO 8601. Bạn có thể sử dụng một trong hai --từ hoặc --cho đến khi của riêng chúng, hoặc cả hai cùng nhau để chỉ định một phạm vi. Các tùy chọn --sau--trước là những từ đồng nghĩa.

git log --since='2021-01-01' --until='2021-05-01'

Hạn chế bằng tệp

Nhật ký Git có thể tập trung vào một tệp cụ thể hơn là mọi tệp trong kho lưu trữ của bạn. Điều này rất hữu ích để giúp bạn tìm hiểu xem một tệp cụ thể đã thay đổi như thế nào theo thời gian. Chỉ cần nối tên tệp vào cuối lệnh git của bạn:

git log filename

Bạn sẽ chỉ thấy những cam kết bị ảnh hưởng tên tập tin .

Sự khác biệt giữa các chi nhánh

Bạn có thể có một số yêu cầu riêng khi xem nhật ký của một chi nhánh. Ví dụ: thay vì xem toàn bộ lịch sử, bạn có thể chỉ muốn xem những gì đã thay đổi trong nhánh cụ thể đó. Nhật ký Git có thể trợ giúp thông qua ref1..ref2 cú pháp. Có ba cách tiếp cận hơi khác nhau mà bạn có thể sử dụng:

  1. Xem các cam kết nằm trong main, nhưng không nằm trong nhánh: git log --oneline origin/branch..origin/main
  2. Xem các cam kết nằm trong nhánh, nhưng không phải là chính: git log --oneline origin/ main ..origin/ branch
  3. Xem các cam kết chỉ tồn tại trong nhánh hoặc chính: git log --oneline origin/branch ... origin/main

Sự khác biệt giữa hai thẻ

Cũng như bạn có thể xem lịch sử giữa các chi nhánh bằng cách sử dụng ref1..ref2 , bạn cũng có thể xem lịch sử giữa các thẻ theo cách tương tự. Xét cho cùng, cả thẻ và nhánh đều là loại tham chiếu.

git log --abbrev-commit --pretty=format:'%h %ar %s' v2.32.0-rc3..v2.32.0

Nếu bạn đang chuẩn bị ghi chú phát hành cho một dự án lớn hơn, git shortlog nên là cổng gọi đầu tiên của bạn. Nó tạo ra một danh sách các tác giả với các chủ đề cam kết cùng với họ. Bạn có thể chuyển cho nó một phạm vi tham chiếu để giới hạn lịch sử theo cách tương tự như git log:

git shortlog v2.32.0-rc3..v2.32.0

Các lệnh git show thậm chí còn linh hoạt hơn git log . Nó có thể hoạt động với các thẻ và các loại đối tượng git khác ngoài lịch sử cam kết. Nó chia sẻ nhiều tùy chọn với git log , nhưng bạn sẽ chỉ thực sự cần nó nếu bạn cần tìm hiểu chi tiết cấp thấp hơn.

Xem lại quá khứ với nhật ký Git

Git log là một lệnh phức tạp, nhưng bạn có thể sử dụng rất nhiều từ các tùy chọn cơ bản nhất của nó. Duyệt qua lịch sử của kho lưu trữ là một cách tuyệt vời để hiểu tần suất các thay đổi xảy ra và số lượng người thực hiện chúng. Khi bạn đã hiểu rõ về lịch sử của một dự án, bạn sẽ có một vị trí tuyệt vời để tự mình đóng góp cho dự án đó.

bạn có thể chơi các trò chơi ps4 đã tải xuống ngoại tuyến không
Đăng lại Đăng lại tiếng riu ríu E-mail Tham gia Xu hướng mã hóa xã hội và đóng góp vào Kho lưu trữ GitHub

Bạn muốn rèn luyện cơ bắp viết mã của mình và giúp đỡ các dự án mã nguồn mở? Đây là cách đóng góp cho GitHub.

Đọc tiếp
Chủ đề liên quan
  • Lập trình
  • GitHub
  • Mẹo mã hóa
Giới thiệu về tác giả Bobby Jack(58 bài báo đã xuất bản)

Bobby là một người đam mê công nghệ, người đã làm việc như một nhà phát triển phần mềm trong gần hai thập kỷ. Anh ấy đam mê chơi game, làm Biên tập viên đánh giá tại Tạp chí Switch Player và đắm mình trong tất cả các khía cạnh của xuất bản trực tuyến và phát triển web.

Xem thêm từ Bobby Jack

Theo dõi bản tin của chúng tôi

Tham gia bản tin của chúng tôi để biết các mẹo công nghệ, đánh giá, sách điện tử miễn phí và các ưu đãi độc quyền!

Bấm vào đây để đăng ký