# Khóa học: Git và Github

Giới thiệu Git không chỉ giúp lưu lại mã nguồn, mà còn là nền tảng để SDET kiểm soát thay đổi, cộng tác minh bạch và bảo vệ chất lượng dự án trong từng lần phát hành. Khóa học Git và Github được xây dựng để bạn hiểu bản chất phía sau mỗi thao tác, từ đó làm việc chủ động với lịch sử mã nguồn thay vì chỉ ghi nhớ câu lệnh. Bạn sẽ từng bước hình thành quy trình Git an toàn, rõ ràng và phù hợp với thực tế phát triển phần mềm hiện đại. Bạn sẽ học được gì? Hiểu cách Git lưu trữ dữ liệu theo nội dung và vận hành lịch sử dự án qua các object như Blob, Tree, Commit, Tag. Thực hành thành thạo quy trình làm việc cốt lõi: theo dõi thay đổi, staging, commit, xem lịch sử, so sánh khác biệt và tạm cất công việc bằng stash. Tự thiết lập môi trường Git cá nhân nhất quán với branch mặc định, pull rebase,...

- Canonical: https://t5edu.site/courses/git-va-github
- Markdown: https://t5edu.site/courses/git-va-github.md
- Cập nhật: 2026-08-10
- Loại nội dung: course
- Trạng thái: published
- Giá: Miễn phí
- Số chương: 2

````markdown
## Tóm tắt khóa học: Git và Github

## Giới thiệu

Git không chỉ giúp lưu lại mã nguồn, mà còn là nền tảng để SDET kiểm soát thay đổi, cộng tác minh bạch và bảo vệ chất lượng dự án trong từng lần phát hành. Khóa học **Git và Github** được xây dựng để bạn hiểu bản chất phía sau mỗi thao tác, từ đó làm việc chủ động với lịch sử mã nguồn thay vì chỉ ghi nhớ câu lệnh. Bạn sẽ từng bước hình thành quy trình Git an toàn, rõ ràng và phù hợp với thực tế phát triển phần mềm hiện đại.

## Bạn sẽ học được gì?
- Hiểu cách Git lưu trữ dữ liệu theo **nội dung** và vận hành lịch sử dự án qua các object như **Blob, Tree, Commit, Tag**.
- Thực hành thành thạo quy trình làm việc cốt lõi: theo dõi thay đổi, staging, commit, xem lịch sử, so sánh khác biệt và tạm cất công việc bằng **stash**.
- Tự thiết lập môi trường Git cá nhân nhất quán với **branch mặc định**, pull rebase, line endings, alias và `.gitignore` phù hợp cho dự án kiểm thử.
- Làm việc tự tin với **branch, merge, rebase, conflict** và lựa chọn cách tích hợp mã nguồn phù hợp với từng tình huống.
- Cộng tác chuyên nghiệp trên **GitHub** thông qua Pull Request, review, branch protection, release tag, hotfix và quản lý remote an toàn.

## Đối tượng phù hợp
- Người mới bắt đầu học Git hoặc đã sử dụng Git theo thói quen nhưng chưa hiểu rõ cơ chế hoạt động bên trong.
- QA, Tester, SDET và Automation Tester cần quản lý mã kiểm thử chuyên nghiệp trong môi trường dự án thực tế.
- Lập trình viên muốn chuẩn hóa quy trình Git cá nhân, giảm rủi ro khi cộng tác và xử lý thay đổi hiệu quả hơn.

---

## Nội dung khoá học

### Chương 1: Kiến thức cơ bản, Object và cấu hình Git cho SDET

Chương học này giúp bạn xây dựng nền móng để dùng Git theo hướng **hiểu bản chất** thay vì thao tác theo mẫu có sẵn. Bạn sẽ khám phá mô hình Git phân tán, cách repository lưu trữ nội dung qua **Blob, Tree, Commit và Tag**, từ đó nhìn rõ mối liên hệ giữa thay đổi trong file, snapshot và lịch sử dự án. Song song với kiến thức nền tảng, bạn trực tiếp rèn luyện các thao tác thiết yếu như theo dõi trạng thái, staging, commit, đọc lịch sử, so sánh khác biệt và tạm cất công việc. Sau chương này, bạn còn có thể tự thiết lập một môi trường Git phù hợp cho công việc SDET với cấu hình global, alias quan sát repository, quy tắc line endings và `.gitignore` cho các công nghệ kiểm thử phổ biến; đặc biệt là hình thành tư duy **bảo vệ secret** và biết cách ứng phó khi file `.env` bị commit nhầm.

### Chương 2: Branching, Merging, Rebase và cộng tác trên GitHub

Từ nền tảng về lịch sử và cấu hình Git ở chương trước, bạn sẽ tiếp tục học cách biến những thay đổi cá nhân thành một quy trình cộng tác an toàn trong dự án. Chương học tập trung vào vòng đời của **feature branch**, cách lựa chọn giữa **merge** và **rebase**, cũng như phương pháp xử lý **merge conflict** một cách bình tĩnh, có kiểm soát thay vì thử lại ngẫu nhiên. Bạn cũng sẽ thực hành quy trình làm việc trên **GitHub** với Pull Request, review, branch protection, kiểm tra CI và checkout Pull Request tại local để kiểm thử. Khi hoàn thành chương này, bạn có thể tự tin phối hợp cùng đội nhóm, giữ lịch sử repository rõ ràng, quản lý release và hotfix bằng tag hoặc cherry-pick, đồng thời duy trì một quy trình tích hợp mã nguồn phù hợp với tiêu chuẩn chất lượng của dự án.

> Các bài học về CICD, Github Actions, các câu hỏi phỏng vấn về GIT dành cho QA engineer đang hoàn thiện...

---

## Nội dung khóa học: Git và Github

### Chương 1: Kiến thức cơ bản, Object và cấu hình Git cho SDET

- Bài 0: Git phân tán, repository hoàn chỉnh và lưu trữ theo nội dung (THEORY)
- Bài 1: Bốn Git object cốt lõi: Blob, Tree, Commit và Tag (THEORY)
- Bài 2: Phân biệt annotated tag và lightweight tag (THEORY)
- Bài 3: Khám phá quan hệ giữa nội dung, snapshot và lịch sử commit (EXERCISE)
- Bài 4: Các lệnh Git thiết yếu trong công việc SDET (THEORY)
- Bài 5: Thực hành init, status, add, commit, log, diff và stash (EXERCISE)
- Bài 6: Cấu hình danh tính và thiết lập Git global (THEORY)
- Bài 7: Thiết lập branch mặc định, pull rebase và line endings (EXERCISE)
- Bài 8: Tạo alias để xem lịch sử và trạng thái repository (EXERCISE)
- Bài 9: Bảo vệ secret và xử lý khi file .env bị commit (THEORY)
- Bài 10: Xây dựng .gitignore cho Node, Playwright, Java, Maven, IDE và hệ điều hành (EXERCISE)
- Bài 11: Kiểm tra kiến thức về Git object, lệnh và cấu hình dự án (QUIZ)

### Chương 2: Branching, Merging, Rebase và cộng tác trên GitHub

- Bài 1: Branch trong Git và các chiến lược rẽ nhánh dành cho SDET (THEORY)
- Bài 2: Thực hành vòng đời feature branch: tạo, chuyển, liệt kê, push và xóa branch (EXERCISE)
- Bài 3: Merge và rebase: khác biệt, rủi ro và tiêu chí lựa chọn (THEORY)
- Bài 4: Thực hành tích hợp feature branch bằng merge và rebase (EXERCISE)
- Bài 5: Giải quyết merge conflict bằng thao tác thủ công và mergetool (EXERCISE)
- Bài 6: Cộng tác trên GitHub với Pull Request và quy trình review (THEORY)
- Bài 7: Thiết lập branch protection cho main (EXERCISE)
- Bài 8: Làm việc với remote bằng fetch, prune và pull rebase (EXERCISE)
- Bài 9: Checkout Pull Request ở local để kiểm thử (EXERCISE)
- Bài 10: Quản lý release và hotfix bằng tag, cherry-pick và upstream (THEORY)
- Bài 11: Thực hành tạo release tag và cherry-pick bản sửa lỗi có xung đột (EXERCISE)
- Bài 12: Đánh giá lựa chọn chiến lược branching và cộng tác an toàn (QUIZ)

````

## Điều hướng

- [Danh sách khóa học Markdown](https://t5edu.site/courses.md)

## Liên kết liên quan

- [Xem bản HTML](https://t5edu.site/courses/git-va-github)
- [Xem bản Markdown](https://t5edu.site/courses/git-va-github.md)
- [LLM index](https://t5edu.site/llms.txt)

Dữ liệu Markdown này được cache công khai và sẽ được làm mới sau các thay đổi nội dung/admin.
