Tech & Tools

GitHub 101: Hướng dẫn dùng GitHub cho người không phải Dev

Hiểu repo là gì, tại sao dùng GitHub để đồng bộ file và làm việc với AI, và cách dùng GitHub Desktop để pull, push, tạo branch mà không cần terminal.

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 DriveGitHub 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.

github-preview

Các bước:

  1. Mở GitHub Desktop
  2. Vào menu File > Clone Repository
  3. Chọn tab GitHub.com - danh sách repo bạn có quyền truy cập sẽ hiện ra
  4. Chọn repo muốn clone
  5. Chọn thư mục lưu trên máy (ví dụ: ~/Documents/Projects/)
  6. 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:

  1. Mở GitHub Desktop, chọn đúng repo
  2. Nhấn nút Fetch origin (kiểm tra có gì mới không)
  3. Nếu có thay đổi mới, nút sẽ chuyển thành Pull origin
  4. 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).

push-code

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:

  1. Sau khi chỉnh sửa file, mở GitHub Desktop
  2. Bên trái sẽ hiện danh sách file đã thay đổi - tick chọn những file muốn push
  3. Điền Summary (bắt buộc) - mô tả ngắn: "Update blog post homepage", "Add new config file"
  4. Nhấn Commit to main (hoặc tên branch hiện tại)
  5. 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ốngDùng branch?
Sửa lỗi nhỏ trong file textKhô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ếtTù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

  1. Nhấn vào ô Current Branch ở trên cùng
  2. Nhấn New Branch
  3. Đặt tên (ví dụ: mkt/update-hero-section)
  4. 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:

  1. Vào GitHub.com, tìm repo
  2. Sẽ có thông báo “Compare & pull request” - nhấn vào
  3. Viết mô tả ngắn về những gì bạn đã làm
  4. Nhấn Create pull request
  5. 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:

  1. Tách branch từ main (điểm xuất phát luôn là bản mới nhất của main)
  2. Làm việc trên branch cá nhân - push bao nhiêu lần tùy thích
  3. Merge về main qua Pull Request khi xong việc
  4. Xóa branch - không còn cần nữa

Nghĩ theo kiểu: main là 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ệcFormatVí dụ
Tính năng mớifeature/tên-tính-năngfeature/dark-mode
Nội dung / marketingcontent/tên-nội-dungcontent/blog-april
Fix lỗifix/mô-tả-lỗifix/broken-nav-link
Thử nghiệmtest/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ườiBranchĐang làm gì
Natenate/content/blog-aprilNate viết blog tháng 4
Minhminh/feature/dark-modeMinh làm tính năng dark mode
Linhlinh/fix/nav-brokenLinh 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 độngDùng khi nàoCách làm
CloneLần đầu lấy repo về máyGitHub Desktop > File > Clone
PullTrước khi bắt đầu làm việcFetch origin > Pull origin
CommitSau khi sửa xong một nhóm fileĐiền Summary > Commit
PushSau khi commit để đẩy lên GitHubNhấn Push origin
BranchKhi làm task mới, thử nghiệm, hoặc team nhiều ngườiCurrent Branch > New Branch

Liên kết

✦ Miễn phí

Muốn nhận thêm kiến thức như thế này?

Mình tổng hợp AI, marketing và tech insights mỗi tuần - gọn, có gu.

Không spam. Unsubscribe bất cứ lúc nào.