Bài 2: git status & git commit
(trạng thái repo và thực hiện commit)
Lệnh git status hiển thị thông tin khác nhau (do thêm mới, xóa đi, sửa đổi các file) giữa các file trong các trường hợp:
Khác nhau giữa các file trong vùng staging (chỉ mục) và commit tại con trỏ HEAD (Thường HEAD ở vị trí commit cuối):
thông tin này bạn có thể thực hiện lệnh commit để lưu staging vào dữ liệu Git
Khác nhau giữa các file trong thư mục làm việc và trong staging
bạn có thể chạy git add rồi commit
Khác nhau giữa thư mục làm việc và những file chưa được giám sát bởi Git
bạn có thể chạy git add rồi commit
git status
Nếu muốn hiện thị thông tin ngắn gọn hơn thì cho thêm tham số -s
Lúc này trước các file có sự thay đổi có thể có các ký tự tương ứng với các thông tin gồm:
' ' = unmodified (không đổi)
M = modified (có sửa đổi)
A = added (file mới thêm)
D = deleted (file bị xóa)
R = renamed (đổi tên file)
C = copied (file copy từ file khác)
U = updated but unmerged (đã cập nhật, nhưng chưa merge)
Lệnh git commit thực hiện lưu vào CSDL Git toàn bộ nội dung chứa trong index (vùng staging) và kèm theo nó là một đoạn text thông tin (log) mô tả sự thay đổi của của commit này so với commit trước. Sau khi commit con trỏ HEAD tự động dịch chuyển đến commit này (Trong nhánh hiện tại).
Lệnh commit cơ bản, đơn giản nhất là thực hiện với tham số -m để kèm dòng thông tin về commit
git commit -m "Ghi chú về commit"
Lệnh trên tạo ra một commit với nội dung lấy từ vùng staging, một điểm trong lịch sử commit được tạo ra với thông tin là dòng thông tin nhập vào, sau này bạn có thể xem lại lịch sử này bằng lệnh git log
Khi cho tham số -a thì nó tương đương thực hiện lệnh git add để đưa các file đang được giám sát có sự thay đổi vào staging rồi tự động chạy git commit
git commit -a -m "Ghi chú về commit"
Nếu commit đã được tạo ra nhưng chưa thực hiện push lên remote thì bạn có thể tạo ra commit mới thay thế cho commit cuối cùng đó. Dùng trong trường hợp không muốn tạo ra nhiều commit trong lịch sử commit thì cho vào lệnh tham số --amend
git commit --amend -m "Thông tin về commit"