Skip to main content
  1. Learn center
  2. Software Development
  3. Guides
  4. Git tutorial
  5. Lệnh & cài đặt Git
  6. Lệnh lịch sử cam kết Git
GuidesSoftware DevelopmentBacklog
Git

Project and code management together.

Lệnh lịch sử cam kết Git


Sửa đổi cam kết và tin nhắn trước đó

$ git commit --amend

Thêm tùy chọn --amend để ghi đè cam kết mới nhất của nhánh bạn đang làm việc.

Khi không có tệp nào trong một chỉ mục, bạn có thể gửi lại cam kết trước đó bằng cách thêm tùy chọn --amend và bạn sẽ được nhắc chỉnh sửa tin nhắn cam kết hiện có.

Xem:

Sửa đổi và di chuyển các cam kết và tin nhắn trước đây

$ git rebase -i <commit>

Thêm một hàm băm cam kết và một danh sách tất cả cam kết cho đến cam kết mới nhất sẽ được liệt kê. Tìm cam kết bạn muốn sửa đổi và thay đổi dòng đó từ pick thành edit, sau đó lưu và thoát.

Tiếp theo, thêm tùy chọn --amend vào cam kết. Một màn hình để thêm một tin nhắn sẽ được hiển thị. Sửa đổi tin nhắn.

$ git commit --amend

Cuối cùng, thêm tùy chọn --continue để chạy rebase.

$ git rebase --continue

Xem:

Thoát nhập nhánh

$ git rebase --abort

Bằng cách thêm tùy chọn --abort, bạn có thể thoát khỏi thao tác rebase.

Hiển thị nhật ký tham chiếu

$ git reflog

Lệnh reflog cho phép bạn xem danh sách các cam kết mà HEAD đã sử dụng để chỉ ra trước đây.

08084a5 HEAD@{0}: commit: append description of the pull command
  99daed2 HEAD@{1}: commit: append description of the commit command
  48eec1d HEAD@{2}: checkout: moving from main to issue1
  326fc9f HEAD@{3}: commit: append description of the add command
  48eec1d HEAD@{4}: commit (initial): first commit

Cả hai cam kết đã xóa và thành công được thu thập bởi nhập nhánh sẽ được hiển thị.

Hiển thị nhật ký tham chiếu của đầu nhánh

$ git reflog <ref>

Điều này sẽ hiển thị một danh sách cam kết cho mỗi lần đầu <ref> thay đổi, tương tự như bên dưới.

445e0ae issue1@{0}: commit (merge): Merge branch 'main' into issue1
1c904bd issue1@{1}: commit (amend): modify description of the pull command
08084a5 issue1@{2}: commit: append description of the pull command
99daed2 issue1@{3}: commit: append description of the commit command
48eec1d issue1@{4}: branch: Created from 48eec1ddf73a7fb508ef664efd6b3d873631742f

Chúng ta có thể xem lịch sử nhập nhánh của cả cam kết đã xóa và hiện có.

Xóa cam kết trước đó

$ git reset --hard HEAD~

Xem:

Đặt lại nhập nhánh

$ git reset --hard <commit>

Sử dụng lệnh reflog để tra cứu các cam kết trước khi chúng được nhập nhánh. Xác định hàm băm cam kết hoặc giá trị của [HEAD@{number}] của cam kết xảy ra trước khi nhập nhánh. Trong ví dụ này, 71bdfbdHEAD@{4} là các tham chiếu đến cam kết.

a51f8d2 HEAD@{0}: rebase -i (finish): returning to refs/heads/dev
  a51f8d2 HEAD@{1}: rebase -i (squash): update 1
  3a273e1 HEAD@{2}: rebase -i (squash): updating HEAD
  f55ef69 HEAD@{3}: checkout: moving from dev to f55ef69
  71bdfbd HEAD@{4}: commit: update 2
  f55ef69 HEAD@{5}: commit (amend): update 1

Thêm giá trị băm (71bdfbdHEAD@{4}) vào <commit> khi chạy lệnh reset.

Vị trí đầu của nhánh bây giờ sẽ chuyển đến cam kết trước khi thực hiện nhập nhánh. Trạng thái của nhánh bây giờ sẽ giống với trạng thái trước khi thực hiện nhập nhánh.

Hủy đặt lại trước đó

$ git reset --hard ORIG_HEAD

ORIG_HEAD đề cập đến cam kết trước khi diễn ra thao tác đặt lại. Bạn có thể khôi phục đặt lại trước đó bằng cách sử dụng đặt lại về ORIG_HEAD.

Sao chép cam kết từ một nhánh khác

$ git cherry-pick "<commit>"

Cam kết được xác định bởi hàm băm của nó sẽ được sao chép vào nhánh hiện tại.

Xem:

Tìm kiếm tin nhắn cam kết

$ git log --grep "<pattern>"

Hiển thị các cam kết với văn bản được chỉ định trong <pattern>.

Subscribe to our newsletter

Learn with Nulab to bring your best ideas to life