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
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 theow
- trang tiếpspacebar
- trang trướcq
- 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ướiN
- đế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"