
Hãy tưởng tượng bạn đang viết một bài tiểu luận dài 50 trang. Bạn lưu file là final.docx và sau đó bạn sửa một chút, lưu thành final_v2.docx, rồi final_cuoi_cung.docx, final_nop_ngay.docx.... Cuối cùng, máy tính hỏng, hoặc bạn lỡ tay xóa nhầm một đoạn quan trọng mà không thể Ctrl + Z lại được. Thật là một thảm họa!
Trong lập trình, rủi ro này lớn hơn gấp ngàn lần, một dự án phần mềm có hàng nghìn file code. Làm sao để quản lý sự thay đổi? Làm sao để 5 người cùng sửa một file mà không ghi đè lên nhau?
Đó là lý do chúng ta cần Hệ thống quản lý phiên bản và bộ đôi quyền lực nhất hiện nay chính là Git và GitHub.
Phân biệt Git và GitHub - Hai khái niệm thường bị nhầm lẫn

Trước khi đi sâu vào kỹ thuật, chúng ta cần dùng kiến thức chuyên môn để làm rõ sự khác biệt này:
- Git: Là một phần mềm chạy trên máy tính của bạn, nó có nhiệm vụ theo dõi mọi thay đổi trong các file code. Nó giống như chức năng "Save" trong game, giúp bạn lưu lại các thời điểm (checkpoint) và quay lại bất cứ lúc nào.
- GitHub: Là một trang web (dịch vụ đám mây) dùng để lưu trữ các dự án Git của bạn lên mạng, nếu Git là máy ảnh chụp lại khoảnh khắc, thì GitHub là Facebook/Instagram để bạn đăng tải album ảnh đó lên và chia sẻ với mọi người.
Các thuật ngữ cốt lõi bạn phải thuộc nằm lòng

Để giao tiếp trong một team lập trình chuyên nghiệp, bạn phải hiểu "ngôn ngữ" của Git:
- Repository (Repo): Kho chứa dự án. Nó chứa toàn bộ file code và lịch sử chỉnh sửa của dự án đó.
- Commit: Một lần "lưu game". Mỗi commit đi kèm với một thông điệp (message) giải thích bạn đã thay đổi gì (ví dụ: "Sửa lỗi đăng nhập").
- Branch (Nhánh): Đây là tính năng "ma thuật" nhất. Từ code chính, bạn có thể tách ra một nhánh riêng để thử nghiệm tính năng mới mà không ảnh hưởng gì đến code gốc.
- Merge (Gộp): Sau khi thử nghiệm thành công ở nhánh riêng, bạn "gộp" nó trở lại vào nhánh chính.
- Pull Request (PR): Yêu cầu gộp code. Trên GitHub, trước khi merge, bạn tạo PR để đồng đội xem lại (review) code của bạn.
Quy trình làm việc chuẩn cho lập trình viên

Dựa trên kinh nghiệm thực chiến tại các công ty công nghệ, đây là quy trình làm việc an toàn mà bạn nên tuân thủ:
- Clone: Tải dự án từ GitHub về máy tính cá nhân
- Branching: Đừng bao giờ code trực tiếp trên nhánh chính (main hoặc master). Hãy tạo một nhánh mới, ví dụ: feature-login.
- Coding & Committing: Viết code và thực hiện git commit thường xuyên, nguyên tắc vàng: "Chia nhỏ và commit nhiều lần". Đừng đợi xong cả tuần mới commit một lần.
- Push: Đẩy nhánh code của bạn từ máy tính lên GitHub.
- Create Pull Request: Vào GitHub, tạo PR và nhờ đồng đội review.
- Merge: Sau khi được duyệt, code của bạn sẽ được gộp vào nhánh chính.
Xử lý xung đột - Cơn ác mộng của người mới
Trong quá trình lập trình nhóm, sẽ có lúc hai người cùng sửa một dòng code, Git sẽ không biết nên nghe theo ai, và nó báo lỗi "Conflict". Tuy nhiên bạn đừng hoảng sợ vì đây là chuyện như cơm bữa, hãy bình tình và:
- Mở file bị lỗi lên (VS Code thường hỗ trợ rất tốt việc này).
- Git sẽ đánh dấu rõ: "Đây là code của bạn" và "Đây là code của người kia".
- Nhiệm vụ của bạn là chọn giữ lại cái nào, hoặc kết hợp cả hai, sau đó commit lại.
Những nguyên tắc vàng - "Đạo Đức" Git

Để trở thành một lập trình viên đáng tin cậy trong mắt đồng nghiệp, bạn phải tuân giữ các nguyên tắc vàng sau:
- Viết Commit Message rõ ràng: Đừng viết "fix bug", "sửa lỗi", "update". Hãy viết: "Sửa lỗi crash khi người dùng nhập sai mật khẩu".
- Không đưa file rác lên Git: Sử dụng file .gitignore để loại bỏ các file tạm, file cấu hình máy cá nhân, hoặc các file chứa mật khẩu nhạy cảm.
- Luôn Pull trước khi Push: Trước khi đẩy code mình lên, hãy tải code mới nhất của người khác về (git pull) để đảm bảo bạn không bị lệch pha với nhóm.
Git và GitHub không chỉ là công cụ, chúng là văn hóa làm việc của ngành lập trình hiện đại. Việc thành thạo kỹ năng quản lý phiên bản sẽ giúp bạn tự tin làm việc trong bất kỳ dự án nào, từ cá nhân đến quy mô doanh nghiệp hàng nghìn người.
Hãy bắt đầu bằng việc tạo một tài khoản GitHub, cài đặt Git vào máy và thực hiện "commit" đầu tiên của cuộc đời lập trình viên ngay hôm nay!
Nếu bạn có những thắc mắc hay cần được tư vấn lộ trình trở thành một developer chân chính hãy để Trainz giúp bạn.
Website: https://trainz.vn
Email: [email protected]
Hotline 24/7: 0906 867 499
Địa chỉ: 304/19/21 Bùi Đình Túy, Phường Bình Thạnh, TP. HCM





