Lệnh git log

Lệnh git log giúp bạn xem lại thông tin lịch sự commit, nhằm giám sát sự thay đổi của dự án. Lệnh git log có nhiều tham số để xuất ra, định dạng các thông tin hiện thị theo cách mong muốn. Bạn có thể định dạng cách các thông tin mỗi commit được in ra khi xem, cũng như có thể lọc thông tin nào đó.

Mặc đinh thi hành git log nó liệt kê các commit theo thứ tự từ mới nhất đến cũ nhất, mỗi commit có các thông tin gồm: mã hash của commit, dòng thông báo, người tạo commit và ngày tạo commit

git log
git log

Khi số lượng log nhiều, nó hiện thị trước một trang log, sau đó có dấu nhắc chờ lệnh để bạn điều hướng, tìm kiếm ... Để có trợ giúp về các lệnh này hãy nhấn h tại dấu nhắc lệnh

Một số phím chức năng bạn có thể nhập đề điều hướng và tìm kiếm trong log như:

  • return - dòng tiếp theo
  • w - trang tiếp
  • spacebar - trang trước
  • q - thoát
  • ?pattern - tìm kiếm, với pattern là mẫu tìm kiếm (keyword)
  • /pattern - giống ?pattern
  • n - đến vị trí tìm kiếm phía dưới
  • N - đến kết quả tìm kiếm phía trước

Các Video: Sử dụng Git, GitHub

Sử dụng git log

Một số thiết lập hay dùng với git log

Nếu chỉ muốn hiện thị một số commit log, ví dụ hiện thị log của 2 commit cuối thì cho thêm -2 vào lệnh

git log -2

Nếu muốn hiện thị chi tiết các thay đổi của từng commit thì thêm vào tham số -p

git log -p -2

Nếu hiện thị thống kế gọn hơn về sự thay đổi thì dùng tham số --stat, hoặc dạng ngắn gọn hơn là --shortstat

git log --stat -5

Định dạng thông tin chung về commit (mã hash, dòng thông tin) trên một dòng thì dùng tham số --oneline

git log --oneline
git log --stat -10 --oneline

Lọc kết quả với git log

Lọc theo ngày bạn có thể dùng tham số --after="year-month-day" hoặc --before="year-month-day" hoặc dùng cả hai để chỉ ra khoảng ngày. Ví dụ: hiện thị các log từ ngày 1/1/2019 đến ngày 31/12/2019

git log --after="2019-1-1" --before="2019-12-31"

Lọc theo người commit dùng tham số --author="tác giả", có thể kết hợp nhiều người bằng ký hiệu \|

git log --oneline --author="XuanThuLab"

Lọc theo thông tin ghi chú về commit sử dụng thiết lập --grep="keyword ..."

git log --oneline --grep="init"

Lọc các commit liên quan đến file cụ thể, sử dụng thiết lập -- rồi liệt kê các file

git log --oneline -- src/OAuth.php

Lọc theo nội dung cập nhật sử dụng tham số -S"nội dung tìm"

git log --oneline --shortstat -S"sendmail"

Lọc các commit bình thường (tham số --no-merges) và các commit do gộp nhánh (tham số --merges)

git log --merges

Tự định dạng hiện thị

Bạn có thể tùy chọn hiện thị dòng thông tin với tham số --pretty="format", trong đó chuỗi format là định dạng thông tin sẽ hiện thị ra cho từng commit, một số dữ liệu theo định dạng đó là:

  • %H mã hash đầy đủ của commit
  • %h mã hash ngắn gọn (7 ký tự đầu của hash đầy đủ)
  • %an tên người commit (định dạng theo --date, ví dụ --date="shortdate")
  • %s dòng thông tin commit
git log --pretty=format:"%h - %ad  %s" --date="short"

Hiện thị log commit dạng đồ thị

Bạn có thể xem lịch sự commit một cách trực quan của một nhánh, nhất là nhánh này trong lịch sử của nó có nhiều lần gộp nhánh

git log --graph --pretty="%h %ad %s" --date="short"

Ví dụ

git init
echo "Abc" > 1.txt
git add .
git commit -m"A"

echo "XYZ" > 2.txt
git add .
git commit -m"B"

git branch test

rm -f 2.txt
git add .
git commit -m"C"

git checkout test
echo "Hello" > hello.txt
git add .
git commit -m"D in Test"

echo "World" > hello.txt
git add .
git commit -m"E in Test"

git checkout master
git merge test master -m"F - merge"

git log --graph --pretty="%h %ad %s" --date="short"
git log

Đăng ký nhận bài viết mới