3.3 Xem lịch sử commit
3.3.1 Git log
Đọc thêm ở đây (tiếng Anh):
Đọc thêm ở đây (tiếng Việt):
https://git-scm.com/book/vi/v1/C%C6%A1-B%E1%BA%A3n-V%E1%BB%81-Git-Xem-L%E1%BB%8Bch-S%E1%BB%AD-Commit
Xem clip (tiếng Việt):
Sau khi thực hiện nhiều commit hoặc lấy một kho chứa (clone) từ trên mạng về. Để xem những gì đã xảy ra, sử dụng lệnh git log.
Có thể sử dụng kho chứa đơn giản sau để chạy các ví dụ minh họa,
$ git clone https://github.com/hung2612/langbiang.git
Chạy lệnh git log để xem kết quả (lưu ý kết quả hiển thị có thể thay đổi),
$ git log
(bấm Enter để xem các nội dung còn lại, bấm q để thoát)
Mặc định, khi không có tham số, lệnh git log sẽ liệt kê các commit của kho chứa theo thứ tự thời gian, từ mới nhất đến cũ hơn. Thông tin của mỗi commit gồm: mã băm SHA-1, tên người commit, địa chỉ email, ngày commit và thông điệp đi kèm.
Lệnh git log có nhiều tham số đi kèm, giúp quan sát thông tin theo nhiều tiêu chí khác nhau. Phần sau sẽ tìm hiểu một số trường hợp hay sử dụng.
Tham số -p sẽ hiển thị diff của từng commit, sử dụng thêm tham số -2 để chỉ hiển thị 2 commit gần nhất.
$ git log -p -2
Nhờ tham số diff, giúp bạn xem lướt qua các thay đổi đã được thực hiện trên kho chứa, ai đã thực hiện, thực hiện vào thời gian nào.
Đối với văn bản lớn, có thể sử dụng thêm tham số --word-diff để xem thông tin một cách tổng quát.
Ví dụ,
$ git log -p -2 --word-diff
Để xem thống kê tóm tắt, sử dụng tham số --stat.
Ví dụ,
$ git log --stat
Để xem hiển thị theo nhiều cách khác nhau, sử dụng tham số --pretty.
Ví dụ hiển thị mỗi commit trên một dòng,
$ git log --pretty=oneline
Để định dạng hiển thị từng thông tin, sử dụng tham số --pretty=format.
Ví dụ,
$ git log --pretty=format:"%h - %an, %ar : %s"
Bảng sau là một số giá trị của tham số format,
%H: mã băm commit | %h: mã băm commit rút gọn |
%T: băm hiển thị dạng cây | %t: băm hiển thị dạng cây rút gọn |
%P: các mã băm gốc | %p: các mã băm gốc rút gọn |
%an: tên tác giả | %ae: email tác giả |
%ad: ngày commit của tác giả | %ar: thời gian đã commit của tác giả (tính đến hiện tại) |
%cn: tên người commit | %ce: email người commit |
%cd: ngày commit | %cr: thời gian đã commit (tính đến hiện tại) |
%s: thông điệp gửi kèm commit |
Tác giả (author) là người tạo ra bản vá (patch) đầu tiên, người commit là người cuối cùng áp dụng bản vá đó.
Để hiện thị các nhánh và lịch sử tích hợp, sử dụng thêm tham số --graph kết hợp với oneline hoặc format. Ví dụ,
$ git log --pretty=format:"%h %s" --graph
Bảng sau tổng hợp một số kiểu định dạng xuất hữu ích của git log,
Tùy chọn | Mô tả |
-p | Hiển thị bản vá của mỗi commit |
--word-diff | Hiển thị bản vá ở định dạng rút gọn |
--stat | Hiển thị thống kê của các tập tin được chỉnh sửa trong mỗi commit |
--shortstat | Hiển thị ngắn gọn thống kê của các tập tin được chỉnh sửa trong mỗi commit |
--name-only | Hiển thị danh sách các tập tin bị thay đổi (sau thông tin commit) |
--name-status | Hiển thị danh sách các tập tin bị ảnh hưởng như thêm/sửa/xóa thông tin |
--abbrev-commit | Hiển thị mã băm (SHA-1) ở dạng rút gọn |
--relative-date | Hiển thị khoảng thời gian từ lúc commit đến thời điểm hiện tại |
--graph | Hiển thị thông tin về rẽ nhánh, trộn nhánh và các thông tin khác |
--pretty | Hiển thị thông tin theo định dạng tùy chỉnh (oneline, full, fuller, format) |
--oneline | Dạng rút gọn của --pretty=oneline --abbrev-commit |
Lab 16. Các chế độ xem lịch sử commit.
Sử dụng repo sau,
$ git clone https://github.com/schacon/simplegit-progit
Thực hiện xem lịch sử commit với các tham số sau, ghi lại kết quả của mỗi trường hợp.
Lệnh | Tham số | Tham số phụ |
$ git log | ||
$ git log | -p | -2 |
$ git log | -p | -2 --word-diff |
$ git log | -- stat | |
$ git log | -- pretty=oneline -- pretty=short -- pretty=full -- pretty=fuller | |
$ git log | --shortstat | |
$ git log | --name-only | |
$ git log | --name-status | |
$ git log | --abbrev-commit | |
$ git log | --relative-date |
3.3.2 Giới hạn thông tin xuất
Mặc định, lệnh git log sẽ xuất thông tin của các commit theo từng trang, theo thứ tự từ mới nhất đến cũ hơn. Ngoài ra, bạn cũng có thể sử dụng thêm các tham số khác, để giới hạn các commit được hiển thị.
Sử dụng tham số -n, với n là một số tự nhiên, để xác định số commit được hiển thị.
Ví dụ sau sẽ hiển thị 3 commit mới nhất,
$ git log -3
Sử dụng tham số --since hoặc --until để hiển thị các commit trong một khoảng thời gian cụ thể.
Ví dụ sau sẽ hiển thị các commit trong 2 ngày gần nhất (tính từ thời điểm hiện tại),
$ git log --since=2.days
Ví dụ sau sẽ hiển thị các commit cho tới ngày 8 tháng 3 năm 2019,
$ git log --until="2019-3-8"
Bảng dưới đây tổng hợp một vài tham số để tiện sử dụng,
Tham số | Mô tả |
- (n) | Hiển thị n commit mới nhất |
--since, --after | Chỉ hiển thị các commit được thực hiện sau ngày cụ thể |
--until, --before | Chỉ hiển thị các commit được thực hiện trước ngày cụ thể |
--author | Hiển thị các commit theo tên tác giả |
--commiter | Hiển thị các commit theo tên người commit |
--grep | Hiển thị các commit dựa vào nội dung thông điệp khi commit (message) Ví dụ: git log --grep="ten" |
-S | Hiển thị các commit dựa vào nội dung đã bị thay đổi (thêm/xóa) trong các tập tin Ví dụ: $ git log -Sword |
Lab 17. Lọc các commit theo yêu cầu.
Sử dụng repo sau,
$ git clone https://github.com/schacon/simplegit-progit
Thực hiện lọc các commit theo các yêu cầu sau, ghi lại thông tin kết quả.
Tham số | Lệnh & Kết quả |
- (n) | |
--since, --after | |
--until, --before | |
--author | |
--commiter | |
--grep | |
-S |
Khi cài đặt Git, sẽ có sẵn một chương trình cho phép bạn quan sát lịch sử commit một cách trực quan bằng giao diện đồ họa. Trong cửa sổ Git Bash, gõ lệnh gitk để trải nghiệm.
0 Nhận xét