Cách học Git: lộ trình, luyện tập, tài liệu và thực hành
Nên học Git theo bốn giai đoạn: thao tác cơ bản (init, add, commit, log), nhánh và gộp, làm việc với kho từ xa và nhóm, rồi hoàn tác lỗi và các công cụ nâng cao. Đạt trình độ làm việc ổn định thường mất khoảng 2–4 tuần luyện tập đều đặn trong kho của chính bạn.
Git học bằng tay chứ không chỉ bằng đọc. Để làm việc tự tin trong nhóm, bạn chỉ cần nắm khoảng hai chục lệnh và hiểu ba ý: commit là ảnh chụp dự án, nhánh là con trỏ tới commit, còn kho từ xa đơn giản là một bản sao khác của lịch sử. Dưới đây là lộ trình học Git theo giai đoạn, có bài tập, tài liệu miễn phí và tiêu chí để biết khi nào đã qua mỗi giai đoạn.
Lộ trình dành cho người mới đã biết dùng terminal ở mức cd và ls. Nếu chưa, hãy dành một buổi tối học cơ bản về dòng lệnh: thiếu nó, việc học Git sẽ khó hơn nhiều.
Vì sao nên học Git có hệ thống
Nhiều người sống nhiều năm chỉ với năm lệnh chép từ hướng dẫn của người khác, và hoảng loạn khi gặp xung đột đầu tiên hay «detached HEAD». Nguyên nhân gần như luôn giống nhau: thiếu mô hình tư duy — người đó không hiểu lệnh đang thay đổi gì trong lịch sử và trong tệp.
Học Git có hệ thống mang lại lợi ích nhanh chóng. Bạn thôi sợ thử nghiệm, vì biết cách quay lại; xử lý xung đột một cách bình tĩnh; và giữ lịch sử gọn gàng để người review và nhà tuyển dụng đều thấy. Git được hỏi trong gần như mọi buổi phỏng vấn IT, từ front-end đến DevOps và phân tích dữ liệu.
Giai đoạn 1. Cơ bản: kho lưu trữ, index, commit
Mục tiêu của giai đoạn đầu là hiểu chu trình cơ bản và ba khu vực của Git: thư mục làm việc, index và kho lưu trữ. Mất khoảng 2–4 ngày, mỗi ngày một giờ.
- Cài đặt và cấu hình ban đầu:
git config --global user.name,user.email, nhánh mặc địnhmain. - Tạo kho lưu trữ:
git init. - Chu trình
git status→git add→git commit; thêm có chọn lọc bằnggit add -p. - Xem lịch sử:
git log --oneline,git diff,git diff --staged,git show. - Tệp
.gitignore: những gì không nên đưa vào kho.
Bài tập. Tạo một kho cho ghi chú hoặc một script nhỏ của bạn. Thực hiện 15–20 commit, mỗi commit là một thay đổi logic với thông điệp rõ ràng. Sau mỗi lệnh, chạy git status và tự giải thích điều gì đã thay đổi.
Đạt yêu cầu khi bạn có thể trả lời không cần gợi ý sự khác nhau giữa đầu ra của git diff và git diff --staged, và commit chỉ một phần các tệp đã sửa.
Giai đoạn 2. Nhánh và gộp
Nhánh là trái tim của Git và là nguồn sợ hãi lớn nhất với người mới. Ở đây quan trọng không phải là học thuộc lệnh, mà là hình dung được đồ thị commit. Giai đoạn này mất khoảng một tuần.
- Tạo và chuyển nhánh:
git branch,git switch,git switch -c. - HEAD là gì và trạng thái detached HEAD.
- Gộp:
git merge, fast-forward và commit gộp, cờ--no-ff. - Xung đột: dấu
<<<<<<<và>>>>>>>,git merge --abort. - Trực quan hóa:
git log --oneline --graph --all.
Bài tập. Tạo hai nhánh từ main và sửa cùng một dòng của một tệp ở mỗi nhánh. Gộp lần lượt, gặp xung đột và giải quyết nó. Lặp lại cho đến khi quy trình trở nên nhàm chán.
Ở giai đoạn này, một bộ luyện tập tương tác rất hữu ích — xem phần dưới. Nó hiển thị đồ thị sau mỗi lệnh và nhanh chóng xây dựng trực giác.
Giai đoạn 3. Kho từ xa và làm việc nhóm
Mục tiêu là học cách làm việc với máy chủ như trong các nhóm thực tế. Bạn cần một tài khoản trên GitHub, GitLab hoặc bất kỳ nền tảng Git nào. Thời lượng khoảng một tuần.
- Kết nối và clone:
git remote add,git clone, đăng nhập bằng khóa SSH. - Đồng bộ:
git push,git push -u,git fetch,git pullvà sự khác nhau giữa chúng. - Nhánh theo dõi từ xa như
origin/main. - Fork, nhánh tính năng và pull request có review.
- Quy trình nhóm: GitHub Flow, Git Flow, trunk-based development.
Bài tập. Làm việc với cùng một kho từ hai «máy tính»: clone nó vào hai thư mục khác nhau. Commit ở một thư mục, push, rồi lấy về ở thư mục kia. Tạo tình huống push bị từ chối vì máy chủ đã đi trước, và tìm hiểu nguyên nhân.
git clone git@github.com:you/sandbox.git copy-a
git clone git@github.com:you/sandbox.git copy-b
cd copy-a && echo "từ A" >> notes.txt && git commit -am "Sửa từ A" && git push
cd ../copy-b && echo "từ B" >> notes.txt && git commit -am "Sửa từ B"
git push # rejected: máy chủ đã đi trước
git pull # lấy sửa của A, giải quyết xung đột trong notes.txt
git push
Kịch bản ngắn này mô phỏng tình huống thường gặp nhất trong nhóm. Hãy phân tích kết quả từng lệnh: vì sao push bị từ chối, điều gì xuất hiện trong origin/main sau fetch, commit gộp đến từ đâu. Sau đó lặp lại với git pull --rebase và so sánh đồ thị bằng git log --oneline --graph --all.
Còn tốt hơn nữa là tìm một bạn cùng học và làm chung một dự án nhỏ qua pull request: bạn sẽ cảm nhận được review, xung đột và thỏa thuận về nhánh.
Giai đoạn 4. Hoàn tác lỗi
Giai đoạn này biến Git từ nguồn lo lắng thành tấm lưới an toàn. Mất khoảng 3–5 ngày.
git restorevàgit restore --staged— hoàn tác trong tệp và index.git commit --amend— sửa commit cuối cùng.git resetvới các chế độ--soft,--mixed,--hard.git revert— hoàn tác an toàn một commit đã công bố.git reflog— khôi phục commit «đã mất».
Bài tập. Thực hiện vài commit, chạy git reset --hard HEAD~3 rồi khôi phục chúng qua reflog. Hoàn tác một commit trong nhánh «chung» bằng revert và xem nó hiển thị trong lịch sử ra sao.
Giai đoạn 5. Công cụ nâng cao
Các công cụ này học khi cần, nhưng nên biết trước chúng tồn tại.
| Công cụ | Khi nào cần |
|---|---|
git rebase và git rebase -i | Lịch sử thẳng, dọn commit trước pull request |
git stash | Cần chuyển việc gấp mà không commit phần đang làm dở |
git cherry-pick | Chuyển một commit, ví dụ bản sửa khẩn |
git tag | Đánh dấu phiên bản phát hành |
git bisect | Tìm commit làm hỏng code |
git worktree, git submodule | Nhiều thư mục làm việc; kho lồng nhau |
Luyện tập Git: nơi nào để thử
Bộ luyện tập tốt ở chỗ nó cho bạn một hộp cát an toàn và hiển thị kết quả ngay. Vài lựa chọn miễn phí:
- Learn Git Branching (learngitbranching.js.org) — bộ luyện tập tốt nhất về nhánh. Có các cấp độ với nhiệm vụ, đồ thị commit hoạt hình, không cần cài đặt. Bao quát commit, branch, merge, rebase, cherry-pick, rebase tương tác và làm việc với remote.
- Oh My Git! — trò chơi miễn phí mã nguồn mở, trong đó các lệnh Git được thể hiện bằng thẻ bài, còn bên dưới là Git thật.
- Kho lưu trữ thử nghiệm của chính bạn — công cụ luyện tập bị đánh giá thấp nhất. Tạo thư mục
git-sandboxvà làm hỏng mọi thứ trong đó: không có gì để mất.
Bộ luyện tập rất tốt để phát triển hiểu biết về đồ thị, nhưng không thể thay thế dự án thật: trong đó không có tệp thật, trình soạn thảo, xung đột trong code và IDE. Hãy dùng chúng như phần bổ sung.
Tài liệu Git và sách
Tài liệu chính thức của Git nằm trên git-scm.com. Ở đó cũng có miễn phí cuốn sách Pro Git của Scott Chacon và Ben Straub, với bản dịch sang nhiều ngôn ngữ. Đây là giáo trình Git tốt nhất: ba chương đầu (cơ bản, phân nhánh) là bắt buộc, còn chương «Git từ bên trong» dành cho ai muốn hiểu mô hình dữ liệu đến tận cùng.
Trợ giúp tích hợp luôn sẵn: git help <lệnh> mở hướng dẫn đầy đủ, git <lệnh> -h hiển thị danh sách cờ ngắn gọn. Tài liệu Git viết khô khan nhưng chính xác; hãy quen tham khảo nó thay vì câu trả lời đầu tiên tìm được trên mạng.
git help rebase # hướng dẫn đầy đủ
git switch -h # tóm tắt các cờ
git help -g # danh sách các hướng dẫn khái niệm (gitworkflows, gittutorial…)
Các hướng dẫn gittutorial và giteveryday cũng hữu ích — chúng có sẵn trong bộ cài Git và mở qua git help.
Tự học hay học theo khóa
Tự học Git hoàn toàn khả thi: sách, bộ luyện tập và hộp cát cho bạn mọi thứ cần thiết. Khó khăn nằm ở chỗ khác — không có cấu trúc thì dễ mắc kẹt ở lý thuyết, hoặc ngược lại là học vẹt lệnh mà không hiểu, và không có phản hồi nào cho bạn biết lịch sử của mình đang lộn xộn.
Khóa học Git hữu ích khi bạn muốn đi nhanh và có thứ tự: từ commit đầu tiên đến pull request trong một kho thật, với bài tập ở mỗi bước. Khi chọn khóa, đừng nhìn vào thời lượng mà nhìn vào tỷ lệ thực hành: có bài tập về xung đột, hoàn tác lỗi, làm việc nhóm và dự án cuối kỳ không?
Cần bao lâu để học Git
| Trình độ | Bạn làm được gì | Thời gian với 1 giờ mỗi ngày |
|---|---|---|
| Cơ bản | Commit, lịch sử, .gitignore | 3–5 ngày |
| Làm việc được | Nhánh, xung đột, push/pull, pull request | 2–3 tuần |
| Thành thạo | Hoàn tác lỗi, rebase, reflog, quy trình nhóm | 1–2 tháng thực hành thật |
Các con số chỉ mang tính tham khảo: điều quyết định là sự đều đặn. Một giờ mỗi ngày hiệu quả hơn nhiều so với những buổi maraton cuối tuần mỗi tháng một lần.
Những sai lầm thường gặp khi học Git
- Chỉ học qua giao diện đồ họa. Các client GUI tiện, nhưng che giấu mô hình. Hãy hiểu dòng lệnh trước, rồi chọn công cụ mình thích.
- Học thuộc cờ. Cần nắm ý tưởng; cờ luôn có sẵn trong
-h. - Sợ làm hỏng. Cho đến khi bạn tự chạy
reset --hardvà khôi phục lại, bạn chưa biết Git bảo vệ bạn đến mức nào. - Bỏ qua kho từ xa. Git cục bộ mà không có push, pull và pull request thì mới chỉ đạt nửa kỹ năng.
- Commit kiểu «fix» hay «update». Thói quen viết thông điệp rõ ràng nên hình thành ngay từ đầu.
Dự án cuối để củng cố
Cách kiểm tra tốt nhất là mô phỏng phát triển nhóm. Tạo một kho, bảo vệ nhánh main khỏi push trực tiếp, mời một bạn cùng học hoặc làm việc từ hai tài khoản. Mỗi công việc là một nhánh tính năng riêng và một pull request có review; hãy tạo xung đột ít nhất một lần, hoàn tác một commit lỗi bằng revert ít nhất một lần, và đánh dấu một bản phát hành bằng thẻ.
Sau dự án như vậy, Git không còn là tập hợp các câu thần chú. Bạn nhìn thấy đồ thị, hiểu hệ quả của từng lệnh và sẵn sàng cho các câu hỏi phỏng vấn.
Tóm lại
Học Git hiệu quả đi theo thứ tự: chu trình cơ bản, nhánh, làm việc với máy chủ, hoàn tác lỗi, rồi các công cụ nâng cao. Bộ luyện tập giúp bạn nhìn thấy đồ thị, Pro Git và tài liệu chính thức cho chiều sâu, còn hộp cát riêng và dự án nhóm biến kiến thức thành kỹ năng. Chính theo lộ trình này — từ git init đến pull request trong dự án cuối — khóa học Git trên Skillaria được xây dựng.
Câu hỏi thường gặp
Có thể học Git trong một ngày không?
Trong một ngày có thể nắm chu trình cơ bản: init, add, commit, log và push. Làm việc tự tin với nhánh, xung đột và hoàn tác lỗi cần vài tuần thực hành.
Có cần biết lập trình để học Git không?
Không. Git làm việc với mọi tệp văn bản, nên có thể học trên ghi chú hay tài liệu. Chỉ cần kỹ năng cơ bản làm việc trong terminal.
Có tài liệu Git bằng tiếng Việt không?
Tài liệu tham khảo chính thức của lệnh nằm trên git-scm.com bằng tiếng Anh. Sách Pro Git có bản dịch sang nhiều ngôn ngữ, còn các bộ luyện tập như Learn Git Branching cũng có thể dùng ngay trên trình duyệt.
Học Git xong thì học gì tiếp?
Bước tiếp theo hợp lý là CI/CD (GitHub Actions, GitLab CI), review code và quy trình nhóm; với DevOps là hạ tầng dưới dạng mã, cũng được lưu trong Git.
Chủ đề này được giảng chi tiết kèm thực hành trong khóa học “Git с нуля до уверенного разработчика”.
- Введение: Git с нуля до уверенного разработчика
- Финальный проект: симулируем настоящую командную разработку