toolingBeginner

Git 101 - Làm chủ mã nguồn và quản lý dự án

Git 101 - Làm chủ mã nguồn và quản lý dự án

Từ cơ bản đến thực chiến Git: workflow chuẩn, commit có ý nghĩa, branching, merge/rebase an toàn và xử lý xung đột. Thành thạo PR/Code Review, branch protection, convention commits, CI cơ bản và các tình huống revert/cherry‑pick/stash để làm việc nhóm hiệu quả.

4.8 (12 đánh giá)4h👥 95 học viên📚 8 bài học📎 12 tài liệu🌐 Vietnamese
5.000.000
7.000.000
IT
Tạo bởi ITSS Training
🌐 VietnameseBeginner

Lộ trình học

Buổi 1
Ngày 1

Mục tiêu

  • Hiểu rõ Git là gì và tại sao cần Git
  • Cài đặt và cấu hình Git
  • Tạo repository đầu tiên

Nội dung

  • Giới thiệu tổng quan về Version Control, lợi ích khi theo dõi lịch sử thay đổi mã nguồn, vai trò nhánh và cách VCS giúp làm việc nhóm hiệu quả trong các dự án thực tế quy mô nhỏ đến lớn.
  • Cài đặt Git trên Windows, macOS và Linux; kiểm tra phiên bản, thiết lập đường dẫn lệnh; giải thích khác biệt cài đặt qua package manager so với bộ cài chính thức và mẹo khắc phục lỗi thường gặp.
  • Cấu hình Git căn bản gồm user.name, user.email, editor và default branch; phân biệt local/global; thiết lập .gitignore theo ngôn ngữ, môi trường để giữ repository sạch và dễ đọc với đồng đội.
  • Khởi tạo repository bằng git init, cấu trúc .git được tạo ra, ý nghĩa staging area; so sánh git init với git clone và khi nào chọn mỗi cách trong bối cảnh dự án mới hay kế thừa.
  • Thực hành tạo repository đầu tiên, thêm mã nguồn mẫu, chụp snapshot đầu tiên bằng commit; sử dụng git status để quan sát luồng Working Directory → Staging → Repository và hiểu rõ trạng thái file.
  • Bài tập có hướng dẫn: chuẩn hóa cấu trúc thư mục src/docs/tests, viết README mô tả mục tiêu, cài đặt, chạy test; bổ sung LICENSE phù hợp mô hình dự án để đảm bảo tính pháp lý khi chia sẻ công khai.
  • Thảo luận nhóm: xây dựng chiến lược lưu vết lịch sử thay đổi nhằm phục vụ audit, rollback nhanh; nguyên tắc đặt tên commit, kích thước commit hợp lý và tiêu chí tách commit để review dễ dàng.
Buổi 2
Ngày 2

Mục tiêu

  • Làm chủ các lệnh Git cơ bản
  • Hiểu rõ staging area
  • Commit và xem lịch sử

Nội dung

  • Giải thích chi tiết Git workflow từ Working Directory → Staging → Repository bằng các ví dụ cụ thể để thấy vòng đời của một thay đổi từ lúc chỉnh sửa đến khi được ghi nhận trong lịch sử.
  • Thực hành các lệnh git add, git commit và git status; cách nhóm thay đổi hợp lý thành các commit nhỏ, rõ ràng để dễ review và revert khi cần.
  • Khám phá git log với nhiều định dạng hiển thị, lọc theo tác giả/nhánh/mốc thời gian để đọc lịch sử một cách có hệ thống.
  • Sử dụng git diff để so sánh thay đổi theo từng file và từng khối (hunks); mẹo bỏ qua whitespace và xem diff theo từ để nắm chính xác nội dung chỉnh sửa.
  • Bài lab: tạo chuỗi commit liên tiếp, hoàn nguyên từng phần thay đổi trước khi commit và quan sát lịch sử thay đổi tương ứng.
  • Bài tập hướng dẫn: viết thông điệp commit theo Conventional Commits nhằm chuẩn hóa lịch sử và hỗ trợ tự động sinh changelog.
  • Tổng kết lỗi phổ biến (quên add/commit, commit nhầm file) và chiến lược khắc phục an toàn không làm mất dữ liệu.
Buổi 3
Ngày 3

Mục tiêu

  • Làm việc với branches
  • Merge và resolve conflicts
  • GitHub integration

Nội dung

  • Thực hành tạo, đặt tên và chuyển đổi giữa các nhánh; quy ước đặt tên nhánh theo feature/hotfix/release giúp dễ quản lý.
  • Thử nghiệm merge nhánh, mô phỏng xung đột và luyện quy trình resolve conflicts có kiểm soát với công cụ so sánh trực quan.
  • Thiết lập tài khoản GitHub và cấu hình SSH/HTTPS; liên kết repository local với remote một cách an toàn.
  • Đẩy code với git push, kéo thay đổi bằng git pull/fetch; giải thích fast-forward vs non fast-forward và khi nào nên dùng mỗi kiểu.
  • Chuỗi bài lab: từ tạo nhánh → commit → mở PR → merge → dọn dẹp nhánh sau khi hợp nhất để giữ lịch sử gọn gàng.
  • Bài tập: tạo nhánh tính năng, mở Pull Request kèm mô tả, checklist và ảnh chụp màn hình minh họa giúp reviewer nắm nhanh ngữ cảnh.
  • Mẹo nâng cao: đồng bộ fork với upstream, cập nhật nhánh feature từ main an toàn bằng rebase/merge và tránh sinh commit thừa.
Buổi 4
Ngày 4

Mục tiêu

  • Advanced Git features
  • Team collaboration workflow
  • Best practices

Nội dung

  • Sử dụng git stash để tạm cất thay đổi dở dang và khôi phục có chọn lọc; áp dụng cherry-pick để mang một commit cụ thể sang nhánh khác khi cần.
  • Thực hành mở Pull Request, gắn người review, thảo luận inline và cập nhật thay đổi theo phản hồi để cải thiện chất lượng mã.
  • Giới thiệu Git hooks; tự động hóa kiểm tra định dạng/lint/test trước khi commit và push để ngăn lỗi lọt vào repository.
  • Thảo luận best practices: kích thước PR hợp lý, tần suất đồng bộ, quy tắc đặt tên nhánh và tiêu chí chấp nhận thay đổi.
  • Bài lab nhóm: mô phỏng quy trình làm việc thực tế với vai trò tác giả, reviewer và maintainer, đảm bảo SLA phản hồi.
  • Thiết lập pre-commit chạy lint/test tự động và chặn commit vi phạm quy chuẩn code nhằm duy trì chất lượng ổn định.
  • Sử dụng checklist code review gồm tính đúng đắn, an toàn, hiệu năng, khả năng bảo trì và tài liệu đi kèm để review hiệu quả.
Buổi 5
Ngày 5

Mục tiêu

  • Rebase an toàn
  • Quy ước commit và changelog

Nội dung

  • Thực hành interactive rebase với reword/squash/fixup để gộp và tinh chỉnh lịch sử thành các commit sạch, có ngữ nghĩa rõ ràng.
  • Chuẩn hóa thông điệp theo Conventional Commits nhằm hỗ trợ versioning và tự động sinh changelog về sau.
  • Tích hợp công cụ sinh changelog tự động từ lịch sử commit; cấu hình phạm vi và loại thay đổi để báo cáo có ích cho stakeholders.
  • Bài lab: dọn dẹp lịch sử lộn xộn thành chuỗi commit mạch lạc trước khi mở Pull Request để reviewer dễ theo dõi.
  • Kịch bản thực tế: viết lại lịch sử trước khi phát hành bản stable, đảm bảo khả năng truy vết cho nhu cầu audit.
  • Phân tích rủi ro khi rebase (thay đổi lịch sử) và quy tắc phối hợp trong team để tránh mất mát và xung đột.
Buổi 6
Ngày 6

Mục tiêu

  • Chiến lược branching
  • Release và hotfix

Nội dung

  • So sánh Git Flow và Trunk-based Development; tiêu chí lựa chọn theo quy mô đội, mức rủi ro và tần suất phát hành.
  • Thực hành tạo release branch, gắn tag phiên bản và ghi chú phát hành theo chuẩn semver để đảm bảo nhất quán.
  • Xây dựng quy trình hotfix nhanh cho sự cố production, đảm bảo rollback an toàn và theo dõi đầy đủ bằng issue/PR liên kết.
  • Cấu hình branch protection: yêu cầu review bắt buộc, status checks và cấm force-push trên nhánh chính.
  • Thiết kế lịch phát hành định kỳ, quy tắc versioning và tiêu chí đóng/mở phiên bản phù hợp với roadmap sản phẩm.
  • Bài tập mô phỏng: tái hiện sự cố production, tạo hotfix, phát hành bản vá và hợp nhất lại vào các nhánh liên quan.
Buổi 7
Ngày 7

Mục tiêu

  • Git trong CI/CD
  • Template PR và CODEOWNERS

Nội dung

  • Thiết lập CI tối thiểu cho Pull Request để chạy lint/test/build, đảm bảo chất lượng trước khi merge vào nhánh chính.
  • Áp dụng CODEOWNERS để buộc người chịu trách nhiệm review đúng khu vực mã nguồn và tăng tính minh bạch.
  • Xây dựng template PR/Issue kèm checklist rõ ràng giúp chuẩn hóa mô tả, tiêu chí chấp nhận và bằng chứng kiểm thử.
  • Tự động gán reviewer/labels bằng rules; gợi ý nhánh đích và tiêu đề theo chuẩn nhằm tăng tốc quy trình.
  • Demo pipeline: kích hoạt khi mở/đẩy cập nhật PR, hiển thị kết quả và ngăn merge khi kiểm tra thất bại.
  • Chiến lược rút ngắn vòng đời PR: chia nhỏ thay đổi, mở bản nháp sớm, phản hồi nhanh và batch review hợp lý.
Buổi 8
Ngày 8

Mục tiêu

  • Khôi phục sự cố
  • Tổng kết dự án nhóm

Nội dung

  • Khôi phục sự cố với git reflog/reset/revert qua các tình huống mất commit, checkout nhầm nhánh và hoàn nguyên an toàn từng phần.
  • Thiết lập sao lưu định kỳ và mirror repository; chiến lược phân quyền và bảo vệ dữ liệu trên nền tảng lưu trữ.
  • Bài tập tổng hợp theo nhóm: lập kế hoạch nhánh, triển khai tính năng, mở PR, review, release và ghi lại nhật ký thay đổi.
  • Đánh giá toàn bộ quy trình: xác định nút thắt, đề xuất cải tiến và đo lường sau cải tiến để duy trì hiệu quả lâu dài.
  • Thực hành post‑mortem sau sự cố: ghi nhận nguyên nhân gốc rễ, hành động khắc phục và chuẩn hóa quy trình phòng ngừa.
  • Cung cấp checklist vận hành Git cho team 3–20 người: vai trò, quy ước, công cụ bắt buộc và lịch hoạt động định kỳ.