Git – Commit

Trước khi chuyển đổi sang branch khác thì bạn nên lưu lại tất cả những gì đã làm bằng lệnh commit. Nếu bạn không commit thì sau khi chuyển sang branch khác những thay đổi của bạn sẽ không được lưu lại trong history và sau này bạn không thể rollback lại được.

1. Kiểm tra trạng thái các tệp tin và nhánh hiện hành trước khi commit

Trước khi commit thì bạn cần kiêm tra xem tình trạng các file như thế nào. Dùng lệnh git status để xem tình trạng file và nhánh hiện hành.

$ git status
On branch task2

Initial commit

Untracked files:
(use "git add <file>..." to include in what will be committed)

README.md
index.html

nothing added to commit but untracked files present (use "git add" to track)

Xem hình ảnh

git commit

Bạn thấy rằng có hai file là README.mdindex.html đang bị trạng thái untracked. Lúc này như bài học trước, bạn phải dùng lệnh git add để đẩy nó vào trạng thái staged. Ta làm lân lượt từng lệnh như sau

$ git add README.md
$ git add index.html

Lúc này dùng lệnh git status một lần nữa để kiểm tra và ta thấy kết quả như sau

$ git status
On branch task2

Initial commit

Changes to be committed:
(use "git rm --cached <file>..." to unstage)

new file:   README.md
new file:   index.html

Hai file mới đã vào trạng thái staged. Ngoài ra bạn có thể kiểm tra branch hiện tại theo cách sau, dùng lệnh git branch nhưng nếu trong lần đầu tiên bạn sẽ không thấy branch nào hết vì bạn đang dùng branch mặc định của Git là master. Còn ví dụ trên mình đang đứng ở branch là task2 vì trước đó mình đã tạo sẵn branch là task1 và task2.

2. Git commit branch

Sau khi đã kiểm tra mọi thứ và add những file cần thiết vào trạng thái staged để sãn sàng commit thì bạn sẽ bắt đầu commit thử lần đầu tiên.

Chú ý: Mình nói những file cần thiết là vì những file không staged thì sẽ không được lưu vào repo khi ta commit.

Để commit ta dùng lệnh sau git commit cụ thể

git commit -m "message"

Với chỉ định -m theo sau đó là một văn bản bỏ trong dấu nháy kép, đó chính là commit message, hay nói ngắn gọn commit này làm gì , có ý nghĩa gì.

Ví dụ sau khi sửa xong chức năng đăng nhập thì bạn sẽ commit với nội dung như sau:

$ git commit -m "Edit the login section"
[task2 a82a4ca] Edit the login section
 2 files changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 README.md
 create mode 100644 index.html

Để ý a82a4ca chính là mã của commit này, sau này với mã này bạn có thể xem lại commit lần này tương tác hay thay đổi những file nào.

Xem hình ảnh

git commit

Sau đó ta thử dùng lệnh git log để xem lại lịch sử commit nào

$ git log
commit 140558639d187d0aaa6ce8e2f177b334f7e2e9c8 (task1, master)
Author: Nguyễn Mạnh Phúc <hihiweb.com@gmail.com>
Date:   Mon Oct 1 21:11:25 2018 +0700

    first commit

Xem hình ảnh

git commit

Như trên ta thấy rõ mã commit, tên tác giả, ngày giờ và nội dung commit. Và đến đây chúng ta đã commit thành công rồi.

Thực hành

Bạn hãy tạo một file tên là manhphuc.txt với nội dung như sau:

Welcome to Hihiweb.com

Bây giờ mình cần sử dụng file này ở branch task1, lúc này các bước để commit như sau:

Đầu tiên bạn cần kiểm tra branch đang đứng với lệnh git branch hiện tại của mình đang đứng ở * task2

Bây giờ mình chuyển sang branch task một với lệnh git checkout task1

Bây giờ tôi tạo 1 file là manhphuc.txt với lệnh touch manhphuc.txt tiếp theo tôi add file manhphuc.txt với lênh git add manhphuc.txt

Bây giờ mình tiến hành commit với lệnh git commit -m "Add file manhphuc.txt"

$ git commit -m "Add file manhphuc.txt"
[task1 fd0561d] Add file manhphuc.txt
 1 file changed, 0 insertions(+), 0 deletions(-)
 create mode 100644 manhphuc.txt

Kết quả như hình:

git commit 4

3. Lời kết

Như vậy mỗi khi làm việc xong thì ta sẽ phải thực hiện commit thì Git mới ghi nhận lại lịch sử, từ đó dựa vào chỉ số lữu trữ thì sau này. Bài này mình chỉ trình bày sơ lượt nên không nói đến khái niệm HEAD, STASH … mình sẽ trình bày chi tiết hơn về commit ở một chương khác.

Từ khóa:

Leave a Reply

Your email address will not be published. Required fields are marked *

arrow