GitHub cơ bản cho người mới dùng agent AI
Repository, commit, branch, pull request, issue, .gitignore và GitHub Actions giải thích bằng ngôn ngữ đời thường, để bạn hiểu và kiểm soát việc Claude Code hay Codex làm trên dự án của mình.

- GitHub
- Claude Code
- Codex
- Người mới
Khi bắt đầu giao việc cho agent như Claude Code hay Codex, nhiều bạn vấp cùng một chỗ: agent nói "mình đã commit và mở pull request", còn bạn không biết commit là gì, pull request nằm ở đâu và có nên bấm nút gộp hay không. Agent làm việc rất nhanh, nhưng muốn kiểm soát được nó, bạn cần hiểu vài khái niệm cơ bản của GitHub.
Bài này giải thích chúng bằng ngôn ngữ đời thường, không cần biết lập trình.
GitHub và Git khác nhau thế nào
Git là công cụ ghi lại lịch sử thay đổi của một thư mục trên máy bạn. GitHub là một trang web lưu bản sao của thư mục đó trên mạng, kèm các tính năng để xem lại, thảo luận và làm việc chung.
Có thể hình dung Git như chức năng "lịch sử phiên bản" của Google Docs, còn GitHub là chiếc tủ hồ sơ trên mạng nơi bạn cất tài liệu và mời người khác cùng xem. Agent dùng Git trên máy để lưu từng bước nó làm, rồi đưa kết quả lên GitHub để bạn duyệt.

Repository (kho dự án)
Repository (thường gọi tắt là repo) là một dự án trên GitHub: toàn bộ tệp, thư mục và lịch sử thay đổi của chúng. Mỗi website, mỗi công cụ hay mỗi bộ tài liệu thường nằm trong một repo riêng.
Khi tạo repo, bạn chọn Public (ai cũng xem được) hoặc Private (chỉ bạn và người được mời). Với dự án cá nhân hay dự án công việc, hãy chọn Private, trừ khi bạn chủ ý chia sẻ mã nguồn.
Trong repo nên có tệp README.md để mô tả dự án làm gì và cách chạy. Agent đọc tệp này đầu tiên để hiểu dự án, nên README càng rõ thì agent càng ít đoán sai.
Commit (bản lưu có ghi chú)
Commit là một lần lưu lại trạng thái của dự án, kèm một dòng ghi chú cho biết đã thay đổi gì. Lịch sử commit giống một cuốn nhật ký: lần nào thêm trang liên hệ, lần nào sửa lỗi ảnh, lần nào đổi màu nút.
Đây là tấm lưới an toàn quan trọng nhất khi làm việc với agent. Nếu agent sửa hỏng, bạn có thể quay về commit trước đó thay vì phải tự gỡ từng dòng.
Vì vậy, hãy dặn agent commit sau mỗi phần việc xong xuôi chứ đừng làm một mạch rồi mới lưu.
Branch (nhánh làm thử)
Branch (nhánh) là một bản sao song song của dự án để thử thay đổi mà không đụng vào bản chính. Nhánh chính thường tên là main; đó là bản đang chạy thật hoặc bản bạn tin là ổn.
Khi giao việc lớn cho agent, hãy bảo nó làm trên một nhánh mới, ví dụ them-trang-bao-gia. Nếu kết quả tốt, bạn gộp nhánh đó vào main. Nếu không, bạn bỏ nhánh đi và main vẫn nguyên vẹn.

Pull request, nơi bạn duyệt việc agent làm
Pull request (PR) là một đề nghị gộp nhánh làm thử vào nhánh chính. Trên trang PR, GitHub hiện rõ từng dòng đã thêm (màu xanh) và đã xoá (màu đỏ), cùng ô bình luận để trao đổi.
Với người dùng agent, PR là chỗ để bạn kiểm tra trước khi nhận kết quả. Đọc phần mô tả agent viết, xem các tệp bị thay đổi có đúng phạm vi bạn giao không, rồi mới bấm Merge (gộp). Nếu thấy chỗ chưa ổn, bạn bình luận ngay trên PR và yêu cầu agent sửa tiếp. Codex khi chạy trên đám mây làm việc trong một bản sao riêng của repo, xong việc thì bạn mở PR ngay từ kết quả đó; Claude Code trên máy bạn cũng tạo được PR khi bạn yêu cầu.

Issue (phiếu giao việc)
Issue là một phiếu ghi việc cần làm: một lỗi cần sửa, một tính năng muốn thêm hay một câu hỏi cần trả lời. Mỗi issue có tiêu đề, phần mô tả và có thể gắn nhãn như bug hay tính năng.
Viết issue rõ ràng cũng chính là viết yêu cầu tốt cho agent. Một issue tốt nói được ba điều: hiện tại đang thế nào, bạn muốn nó thành thế nào và làm sao biết là đã xong. Sau đó bạn chỉ cần bảo agent "làm issue số 12". Khi PR được gộp kèm dòng Closes #12, issue đó tự đóng, nên bạn luôn biết việc nào đã xong.
Đồng bộ máy với GitHub bằng clone, push và pull
Ba thao tác này giữ cho bản trên máy và bản trên GitHub khớp nhau:
| Thao tác | Ý nghĩa |
|---|---|
| Clone | Tải toàn bộ một repo từ GitHub về máy lần đầu |
| Push | Đẩy các commit mới từ máy lên GitHub |
| Pull | Kéo các thay đổi mới từ GitHub về máy |
Thói quen nên có: pull trước khi bắt đầu làm, để agent làm trên bản mới nhất; push sau khi xong, để công việc được lưu trên GitHub chứ không chỉ nằm trên một chiếc máy.
Giữ bí mật bằng .gitignore
Tệp .gitignore liệt kê những tệp Git sẽ bỏ qua, không lưu và không đưa lên GitHub. Hãy đưa vào đây mọi tệp chứa mật khẩu, API key hay thông tin khách hàng, ví dụ tệp .env.
Đây là lỗi người mới hay gặp nhất: dán API key vào mã rồi để agent commit lên GitHub. Một khi key đã lên GitHub, dù sau đó bạn xoá đi, nó vẫn nằm trong lịch sử commit. Cách xử lý đúng là thu hồi key đó và tạo key mới. Tốt nhất là dặn agent ngay từ đầu: không bao giờ commit tệp chứa bí mật.

Hai công cụ giúp agent làm việc với GitHub
GitHub CLI (gh) là công cụ dòng lệnh cho phép agent tạo issue, mở PR, đọc bình luận hay xem kết quả kiểm tra mà không cần mở trình duyệt. Cài gh và đăng nhập một lần, sau đó bạn chỉ cần nói "mở pull request cho thay đổi này", agent sẽ tự gõ lệnh.
GitHub Actions là các bước tự động chạy mỗi khi có commit hay PR mới, ví dụ chạy bộ kiểm tra để xem thay đổi có làm hỏng gì không. Khi PR hiện dấu tích xanh, các bước kiểm tra đã chạy qua; dấu X đỏ nghĩa là có bước thất bại và bạn nên bảo agent xem lỗi trước khi gộp. Claude Code còn có bản tích hợp vào GitHub Actions: bạn nhắc @claude trong issue hay PR thì agent sẽ vào làm việc ngay trên đó.
Một vòng làm việc mẫu
Ghép các mảnh trên lại, một vòng làm việc với agent thường trông như sau:
- Viết một issue mô tả việc cần làm.
- Bảo agent tạo nhánh mới cho issue đó.
- Agent sửa mã và commit sau mỗi phần việc.
- Agent push nhánh lên GitHub và mở pull request.
- GitHub Actions chạy kiểm tra tự động.
- Bạn đọc PR, bình luận nếu cần, rồi bấm Merge.
- Pull bản mới nhất về máy trước khi giao việc tiếp theo.
Bạn không cần thuộc lệnh Git nào, vì agent sẽ gõ thay bạn. Điều bạn cần là hiểu mỗi bước có ý nghĩa gì để biết lúc nào nên duyệt, lúc nào nên dừng lại hỏi và lúc nào có thể yên tâm bấm gộp.