Git

Các câu lệnh kiểm tra repository trong Git

Trong quá trình làm việc với Git, chúng ta cần phải kiểm tra các trạng thái hiện tại hay các ghi log của kho lưu trữ, Git hỗ trợ các câu lệnh đủ mạnh để đáp ứng tất cả các yêu cầu này.

git status

Câu lệnh git status hiển thị trạng thái working directory và staging area, nó cho phép xem các thay đổi trong staging area, các file nào được track. Git status không hiển thị bất kỳ thông tin nào liên quan đến commit. Câu lệnh này cũng gợi ý các bước làm tiếp theo khi bạn thực hiện, ví dụ như với file untrack nó sẽ gợi ý bạn track bằng lệnh git add hoặc với file đã track có thể chuyển về untrack bằng git rm.

Git status bỏ qua các thư mục, file được liệt kê trong .gitignore. Chúng ta cùng xem ví dụ về git status:

câu lệnh git status

Trong ví dụ trên, lần đầu sử dụng git status sẽ thấy thông báo file index.html đã được track và được thay đổi, nó cũng gợi ý có thể sử dụng git add để cập nhật vào staging area, hoặc git checkout — <file> để bỏ qua các thay đổi trong working directory. Sau đó, git add sẽ ghi nhận lại các thay đổi vào staging area và chúng ta xem git status lần thứ hai thì thấy không còn gì cần làm.

git log

So sánh giữa git status và git log

Câu lệnh git log sẽ hiển thị các staging area snapshot đã được commit, nó cho bạn thấy danh sách các lịch sử thay đổi của dự án, cho phép lọc hoặc tìm kiếm các thay đổi. Git log và git status khác nhau ở chỗ, git status cho thấy trạng thái của working directory và staging area trong khi đó git log chỉ làm việc với các lần commit.

Câu lệnh git log

Câu lệnh git log có rất nhiều các tùy chọn khác nhau:

  • git log -n <limit> : chỉ hiển thị log cho <limit> lần commit gần nhất.
  • git log –online: hiển thị mỗi log commit trên một dòng, sẽ không có thông tin như author và date được hiển thị.
  • git log –stat: hiển thị log commit chi tiết hơn với các file nào thay đổi và số lần git add, nếu danh sách quá dài, khi thoát cần nhấn tổ hợp Shift + ZZ.
  • git log -p: hiển thị log commit chi tiết –stat với các dòng thay đổi trong từng file được hiển thị, Shift + ZZ để thoát nếu danh sách quá dài.
  • git log –author=”<pattern>”: hiển thị các log commit của người thực hiện xác định.
  • git log –grep=”<pattern>”
  • git log <since>..<until>: hiển thị các log commit trong khoảng từ <since> đến <until>, hai tham số này đều là các ID của mỗi lần commit.

Các tùy chọn có thể kết hợp với nhau tạo thành các truy vấn log commit phức tạp theo yêu cầu, ví dụ:

git log --author="[email protected]" -p index.html

Kết quả như sau:

Kết hợp nhiều tùy chọn trong git log

git show

git show <commit_id> dùng để xem chi tiết một commit. Câu lệnh git show có thể được sử dụng để xem rất nhiều các dạng đối tượng khác nhau, bạn xem chi tiết git show ở đây. Trong khuôn khổ bài viết chúng ta chỉ tìm hiểu git show ở góc độ xem chi tiết một commit. Trước hết để xem chi tiết, chúng ta cần lấy ID của commit bằng git log –oneline.

Câu lệnh git show

git diff

Trong project cần rất nhiều lần thay đổi, làm chủ các thay đổi này giúp bạn quản lý dự án tốt hơn. Các câu lệnh git status, git log chỉ cho bạn thấy được một phần thông tin, với git diff bạn sẽ có được thông tin một cách tường tận nhất. git diff cho phép bạn so sánh các phiên bản khác nhau của một file.

  • git diff HEAD <filename>: So sánh file trong local repository với working directory.
  • git diff <filename>: So sánh file trong staging area với working directory.
  • git diff –cached <filename>: So sánh file trong staging area với local repository.
  • git diff <commit_id_1>..<commit_id_2>: So sánh file trong hai lần commit khác nhau.

Câu lệnh git diff được sử dụng rất nhiều trong quản lý phiên bản, có lẽ đây là một trong những câu lệnh được sử dụng nhiều nhất.

Chúng ta cùng xem ví dụ được thực hiện git diff cùng các tùy chọn.

Ví dụ sử dụng git diff

Lời kết

Với các câu lệnh git status, git log, git show, git diff chúng ta đã kiểm soát được trạng thái và tìm ra sự khác biệt giữa các phiên bản khác nhau. Dựa vào các thông tin này chúng ta hoàn toàn quản lý được phiên bản một cách tốt nhất. Trong các bài viết tiếp theo chúng ta sẽ tìm hiểu về cách thức quay trở lại các phiên bản khác nhau cùng với các vấn đề khác khi làm việc trên Git.

 

Registration Login
Sign in with social account
or
Lost your Password?
Registration Login
Sign in with social account
or
A password will be send on your post
Registration Login
Registration