Git cơ bản là gì? Vì sao lập trình viên nào cũng cần dùng

  • author-image

    Nguyễn Đình Cường

  • blog-tag
  • blog-comment 0 comment
  • created-date 09 Nov, 2026
blog-thumbnail

Bạn đã bao giờ đặt tên file kiểu "baocao_final_final2_that_su_final.docx" chưa? Git giải quyết đúng nỗi đau đó cho code: ghi lại lịch sử thay đổi, cho phép quay về bản cũ và nhiều người cùng làm việc trên một dự án mà không giẫm chân nhau.

Git là gì?

Git là hệ thống quản lý phiên bản phân tán. Nó lưu các "ảnh chụp" (snapshot) của dự án theo thời gian. Mỗi ảnh chụp gọi là một commit, kèm lời nhắn mô tả thay đổi. Cần phân biệt: Git là công cụ chạy trên máy bạn, còn GitHub, GitLab, Bitbucket là dịch vụ lưu kho Git trên mạng để chia sẻ và cộng tác.

Vì sao nên dùng Git?

  • Hoàn tác được: lỡ làm hỏng, quay về phiên bản chạy tốt.
  • Lịch sử rõ ràng: ai sửa gì, khi nào, vì sao.
  • Thử nghiệm an toàn: tạo nhánh để thử ý tưởng mà không ảnh hưởng bản chính.
  • Làm việc nhóm: gộp thay đổi của nhiều người.
  • Sao lưu: đẩy code lên máy chủ từ xa.

Ba khu vực cần hiểu

  1. Thư mục làm việc (working directory): các file bạn đang sửa.
  2. Vùng chuẩn bị (staging area): nơi bạn chọn những thay đổi sẽ đưa vào commit tiếp theo.
  3. Kho lưu trữ (repository): lịch sử các commit đã lưu.

Quy trình làm việc cơ bản

# khởi tạo kho Git trong thư mục dự án
git init

# xem trạng thái các file
git status

# đưa file vào vùng chuẩn bị
git add ten_file.py
# hoặc thêm mọi thay đổi
git add .

# lưu thành một commit
git commit -m "Thêm chức năng đăng nhập"

# xem lịch sử
git log --oneline

Hãy viết lời nhắn commit ngắn gọn, rõ nghĩa, nói thay đổi này làm gì. Nhiều commit nhỏ có ý nghĩa tốt hơn một commit khổng lồ.

Nhánh (branch)

Nhánh cho phép phát triển song song. Nhánh chính thường tên main. Muốn làm tính năng mới, tạo nhánh riêng:

git switch -c tinh-nang-gio-hang   # tạo và chuyển sang nhánh mới
# ... sửa code, add, commit ...
git switch main                    # quay về nhánh chính
git merge tinh-nang-gio-hang       # gộp nhánh vào main

Nếu hai nhánh cùng sửa một chỗ, Git báo xung đột (conflict) và bạn phải tự chọn nội dung cuối cùng. Đây là chuyện bình thường, không phải thảm họa.

Làm việc với kho từ xa

git clone https://github.com/ten-ban/du-an.git   # tải kho về máy
git pull                                        # lấy thay đổi mới nhất
git push                                        # đẩy commit của bạn lên

Thói quen tốt: pull trước khi bắt đầu làm việc và push thường xuyên sau khi hoàn tất phần nào đó.

File .gitignore

Không phải file nào cũng nên đưa vào Git. Tạo file .gitignore để liệt kê những thứ bỏ qua:

node_modules/
__pycache__/
.env
*.log

Đặc biệt, không bao giờ commit mật khẩu, khóa API hay file .env. Nếu lỡ đẩy lên kho công khai, hãy coi như khóa đã lộ và đổi ngay.

Các lệnh cứu nguy

  • git restore ten_file: bỏ thay đổi chưa commit của file.
  • git diff: xem chính xác dòng nào đã thay đổi.
  • git revert ma_commit: tạo commit mới để đảo ngược một commit cũ, an toàn khi đã chia sẻ.
  • git stash: cất tạm thay đổi để chuyển việc khác.

Xử lý xung đột (conflict) bước một

Xung đột khi gộp nhánh làm người mới sợ, nhưng quy trình giải quyết khá đơn giản. Sau khi git merge báo xung đột, mở file bị ảnh hưởng, bạn sẽ thấy các dấu hiệu:

<<<<<<< HEAD
tieu_de = "Khóa học Python"
=======
tieu_de = "Python cho người mới"
>>>>>>> tinh-nang-moi

Phần trên là nội dung nhánh hiện tại, phần dưới là nội dung nhánh đang gộp vào. Hãy làm theo bốn bước:

  1. Quyết định nội dung cuối cùng (giữ một bên, hoặc kết hợp cả hai).
  2. Xóa các dòng dấu hiệu <<<<<<<, =======, >>>>>>>.
  3. Chạy thử chương trình để chắc nó vẫn hoạt động.
  4. git add file đó rồi git commit để hoàn tất việc gộp.

Để giảm xung đột trong thực tế: commit nhỏ và thường xuyên, pull trước khi bắt đầu, thông báo cho đồng đội khi sửa file dùng chung, và giữ nhánh tính năng ngắn ngày. Nếu bối rối giữa chừng, git merge --abort sẽ đưa mọi thứ về trạng thái trước khi gộp.

Kết luận

Chỉ với init, add, commit, branch, merge, pull, push bạn đã dùng Git đủ cho hầu hết dự án nhỏ. Hãy đưa mọi bài tập của mình lên một kho Git, vừa luyện lệnh, vừa xây dựng hồ sơ năng lực công khai mà nhà tuyển dụng có thể xem.

Muốn học bài bản và có người hướng dẫn? Hãy xem các khóa học trên codebem.com để đi từ nền tảng đến dự án thực tế.

author_photo
Nguyễn Đình Cường

0 comment