GitHub 101: Hướng dẫn cho người không phải Dev
GitHub nghe có vẻ “của dân kỹ thuật”, nhưng thực ra bất kỳ ai làm việc với file - content, design assets, config, tài liệu - đều có lý do để dùng nó. Bài này sẽ giải thích từ đầu, không cần biết code.
1. Repo là gì - và tại sao bạn cần nó?
Repo (Repository) là một “thư mục dự án” được lưu trên cloud, nhưng có thêm khả năng:
- Lưu toàn bộ lịch sử thay đổi - ai sửa gì, lúc nào, dòng nào
- Đồng bộ qua nhiều máy tính và nhiều người
- Rollback về bất kỳ thời điểm nào nếu có sai sót
Hãy nghĩ đến Google Drive nhưng dành cho file code/text, với hệ thống lịch sử chi tiết hơn nhiều.
Tại sao dùng repo thay vì Google Drive hoặc iCloud?
| Tiêu chí | Google Drive | GitHub Repo |
|---|---|---|
| Đồng bộ file | ✅ | ✅ |
| Lịch sử thay đổi chi tiết | ❌ (chỉ 30 ngày) | ✅ (vĩnh viễn, theo từng dòng) |
| AI đọc toàn bộ codebase | ❌ vẫn được, nhưng setup phức tạp | ✅ |
| Làm việc offline rồi sync | ❌ đồng bộ trực tiếp | ✅ |
| Tránh conflict khi nhiều người sửa | ❌ | ✅ (nếu dùng branch đúng) |
Lý do dùng GitHub khi làm việc với AI
Đây là lý do thực tế nhất với nhiều người không phải dev:
AI (Claude, Cursor, Copilot…) đọc được toàn bộ codebase/tài liệu qua repo. Khi bạn connect AI với một repo, nó có thể:
- Hiểu cấu trúc dự án
- Đề xuất thay đổi chính xác theo context
- Tạo PR (pull request) thay bạn
- Không bị “mù” về những gì đã có
Nếu file chỉ nằm trong máy bạn, AI chỉ làm được với những gì bạn paste vào chat. Nếu file ở repo, AI có thể làm việc trực tiếp và các thông tin context được cập nhật real-time.
2. Công cụ bạn cần: GitHub Desktop
Dân dev thường dùng terminal (gõ lệnh) để làm việc với GitHub. Với người không phải dev, có một lựa chọn tốt hơn nhiều: GitHub Desktop.
GitHub Desktop là giao diện đồ họa giúp bạn:
- Clone repo về máy bằng vài click
- Pull/Push file không cần nhớ lệnh
- Tạo branch trực quan
- Xem thay đổi trực tiếp trước khi đẩy lên
Cài đặt: Tải về tại desktop.github.com (miễn phí, Mac & Windows).
Sau khi cài, đăng nhập bằng tài khoản GitHub của bạn.
3. Clone repo về máy
Clone = tải một repo từ GitHub về máy tính của bạn để làm việc.

Các bước:
- Mở GitHub Desktop
- Vào menu File > Clone Repository
- Chọn tab GitHub.com - danh sách repo bạn có quyền truy cập sẽ hiện ra
- Chọn repo muốn clone
- Chọn thư mục lưu trên máy (ví dụ:
~/Documents/Projects/) - Nhấn Clone
Lúc này, một thư mục sẽ được tạo trong máy bạn - đây là bản copy local của repo. Mọi thay đổi bạn làm trong thư mục này đều có thể đồng bộ lên GitHub.
Lưu ý: Thư mục này không tự đồng bộ như iCloud hay Google Drive. Bạn cần chủ động pull (lấy về) và push (đẩy lên) theo tay.
4. Pull: Lấy bản mới nhất về máy
Pull = tải những thay đổi mới nhất từ GitHub về máy bạn.
Khi nào cần pull?
- Trước khi bắt đầu làm việc mỗi ngày
- Khi được báo có người khác vừa update repo
- Trước khi push để tránh conflict
Cách pull trong GitHub Desktop:
- Mở GitHub Desktop, chọn đúng repo
- Nhấn nút Fetch origin (kiểm tra có gì mới không)
- Nếu có thay đổi mới, nút sẽ chuyển thành Pull origin
- Nhấn Pull origin - GitHub Desktop sẽ tải về và merge tự động
5. Push: Đẩy thay đổi lên GitHub
Push = đẩy những thay đổi bạn đã làm trên máy lên GitHub (để người khác thấy và để AI truy cập).

Quy trình push gồm 2 bước: Commit rồi mới Push.
Commit là gì? Giống như “lưu + đặt tên” cho một nhóm thay đổi. Mỗi commit có message giải thích bạn đã làm gì.
Cách push trong GitHub Desktop:
- Sau khi chỉnh sửa file, mở GitHub Desktop
- Bên trái sẽ hiện danh sách file đã thay đổi - tick chọn những file muốn push
- Điền Summary (bắt buộc) - mô tả ngắn:
"Update blog post homepage","Add new config file" - Nhấn Commit to main (hoặc tên branch hiện tại)
- Nhấn Push origin ở thanh trên
Vậy là xong - file của bạn đã lên GitHub.
6. Branch: Khi nào cần và cách dùng
Branch (nhánh) là một bản copy riêng của repo, tách ra khỏi nhánh chính (main) để bạn thử nghiệm hoặc làm việc độc lập mà không ảnh hưởng đến phiên bản đang chạy.
Tưởng tượng như thế này
main ──────────────────────────── (bản chính thức, website đang chạy)
└── feature/new-landing ─── (bạn đang thử nghiệm ở đây)
Bạn làm việc trên feature/new-landing. Nếu hỏng, main vẫn nguyên vẹn.
Khi nào cần dùng branch?
| Tình huống | Dùng branch? |
|---|---|
| Sửa lỗi nhỏ trong file text | Không nhất thiết |
| Thêm tính năng mới | ✅ Nên dùng |
| Thử nghiệm giao diện, layout | ✅ Nên dùng |
| Nhiều người cùng làm việc song song | ✅ Bắt buộc |
| Update nội dung bài viết | Tùy - nếu repo nhỏ và chỉ mình dùng thì push thẳng main cũng được |
Tạo branch trong GitHub Desktop
- Nhấn vào ô Current Branch ở trên cùng
- Nhấn New Branch
- Đặt tên (ví dụ:
mkt/update-hero-section) - Nhấn Create Branch
Từ đây, mọi commit của bạn sẽ nằm trên branch này, không ảnh hưởng main.
Gộp branch vào main (Merge)
Khi xong việc, bạn cần merge (gộp) branch của mình vào main:
- Vào GitHub.com, tìm repo
- Sẽ có thông báo “Compare & pull request” - nhấn vào
- Viết mô tả ngắn về những gì bạn đã làm
- Nhấn Create pull request
- Nếu là repo cá nhân, bạn có thể tự merge. Nếu team, để người review xem qua trước
7. Nguyên tắc quan trọng: GitHub không phải Google Docs
Google Docs hay Notion cho phép nhiều người cùng chỉnh sửa một file cùng lúc - real-time, không conflict.
GitHub thì không. Nếu hai người cùng sửa một file rồi cùng push lên, GitHub sẽ báo conflict và bạn phải giải quyết thủ công - việc này khá phức tạp.
Cách tránh conflict
1. Mỗi người một file, hoặc mỗi người một phần riêng
Đừng để hai người cùng sửa index.html hay config.json cùng lúc.
2. Pull trước khi làm việc
Mỗi buổi sáng trước khi bắt đầu: pull để đảm bảo bạn đang có bản mới nhất.
3. Dùng branch riêng cho mỗi người/task
Đây là cách pro nhất: mỗi người làm việc trên branch của mình, không đụng vào branch của người khác.
4. Communicate
Nếu bạn đang sửa một file quan trọng, báo team biết. Đặc biệt với file config hoặc file chung (layout, CSS chính).
5. Push thường xuyên
Đừng giữ thay đổi trong máy quá lâu. Push mỗi khi hoàn thành một phần việc - giảm nguy cơ bị conflict lớn.
8. Quy ước đặt tên branch
main luôn là bản final
Branch cá nhân chỉ là workspace tạm thời. Vòng đời của một branch:
main ──────────────────────────────────────► main (updated)
└── feature/abc ─── (làm việc) ──┘
(tách ra) (merge vào main, xóa branch)
Quy trình chuẩn:
- Tách branch từ
main(điểm xuất phát luôn là bản mới nhất của main) - Làm việc trên branch cá nhân - push bao nhiêu lần tùy thích
- Merge về
mainqua Pull Request khi xong việc - Xóa branch - không còn cần nữa
Nghĩ theo kiểu:
mainlà bản thành phẩm trên kệ, branch là bàn làm việc của bạn. Xong việc thì dọn bàn, đưa thành phẩm lên kệ.
Đặt tên branch theo loại công việc
Nếu team có nhiều người, nên thống nhất cách đặt tên:
| Loại công việc | Format | Ví dụ |
|---|---|---|
| Tính năng mới | feature/tên-tính-năng | feature/dark-mode |
| Nội dung / marketing | content/tên-nội-dung | content/blog-april |
| Fix lỗi | fix/mô-tả-lỗi | fix/broken-nav-link |
| Thử nghiệm | test/thứ-đang-thử | test/new-hero-layout |
Đặt tên branch theo nhân sự
Khi team đông hơn, cần biết ngay ai đang làm gì chỉ bằng tên branch. Format phổ biến là thêm tên/username vào đầu:
{tên}/{loại-công-việc}/{mô-tả}
Ví dụ thực tế:
| Người | Branch | Đang làm gì |
|---|---|---|
| Nate | nate/content/blog-april | Nate viết blog tháng 4 |
| Minh | minh/feature/dark-mode | Minh làm tính năng dark mode |
| Linh | linh/fix/nav-broken | Linh fix lỗi menu |
Nhìn vào danh sách branch trên GitHub là biết ngay ai đang làm task gì, không cần hỏi.
Lưu ý khi đặt tên:
- Dùng chữ thường, không dấu, không khoảng trắng - dùng dấu
-để ngăn cách - Giữ ngắn gọn, đủ hiểu - không cần quá chi tiết
- Xóa branch ngay sau khi merge để danh sách không bị rác
Tóm tắt nhanh
| Hành động | Dùng khi nào | Cách làm |
|---|---|---|
| Clone | Lần đầu lấy repo về máy | GitHub Desktop > File > Clone |
| Pull | Trước khi bắt đầu làm việc | Fetch origin > Pull origin |
| Commit | Sau khi sửa xong một nhóm file | Điền Summary > Commit |
| Push | Sau khi commit để đẩy lên GitHub | Nhấn Push origin |
| Branch | Khi làm task mới, thử nghiệm, hoặc team nhiều người | Current Branch > New Branch |
NateCue