DEV Community

MaiTamDev
MaiTamDev

Posted on

GitHub: Hướng dẫn toàn diện từ A đến Z cho người mới bắt đầu

GitHub: Hướng dẫn toàn diện từ A đến Z cho người mới bắt đầu

Bạn đang tìm hiểu về lập trình và nghe nói đến GitHub ở khắp mọi nơi? Bạn cảm thấy choáng ngợp trước giao diện và các thuật ngữ như repository, commit, pull request? Đừng lo, bạn không đơn độc. GitHub không chỉ là nơi lưu trữ code, mà còn là mạng xã hội lớn nhất thế giới dành cho các nhà phát triển, là trái tim của cộng đồng mã nguồn mở và là công cụ không thể thiếu trong quy trình làm việc chuyên nghiệp.

Bài viết này sẽ là cuốn cẩm nang đầy đủ, giải thích mọi thứ bạn cần biết về GitHub từ con số không, giúp bạn tự tin bước vào thế giới phát triển phần mềm hiện đại.

GitHub là gì? Phân biệt rõ ràng giữa Git và GitHub

Trước hết, chúng ta cần phân biệt hai khái niệm thường bị nhầm lẫn:

  • Git: Đây là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System). Nó là một phần mềm chạy trên máy tính của bạn, giúp bạn theo dõi những thay đổi trong mã nguồn theo thời gian. Bạn có thể "lưu ảnh" (commit) trạng thái dự án, quay lại phiên bản trước, và làm việc trên nhiều nhánh (branch) khác nhau.

  • GitHub: Đây là một nền tảng đám mây (cloud-based platform) được xây dựng dựa trên Git. Nó cung cấp một nơi để bạn lưu trữ các kho chứa Git (repository) của mình trên internet, đồng thời bổ sung thêm rất nhiều tính năng xã hội và cộng tác mạnh mẽ.

Tóm lại: Git là công cụ, còn GitHub là nền tảng để sử dụng và phát huy sức mạnh của công cụ đó. Nếu Git là một cuốn nhật ký ghi chép cẩn thận, thì GitHub là một thư viện công cộng nơi bạn chia sẻ cuốn nhật ký đó với cả thế giới.

Tại sao GitHub lại quan trọng đến vậy?

GitHub đã trở thành tiêu chuẩn công nghiệp vì nhiều lý do:

  1. Cộng tác nhóm dễ dàng: Cho phép nhiều người cùng làm việc trên một dự án mà không ghi đè lên nhau.
  2. Quản lý mã nguồn an toàn: Lịch sử thay đổi được ghi lại rõ ràng, giúp bạn dễ dàng tìm lỗi và quay lại trạng thái ổn định trước đó.
  3. Nền tảng của mã nguồn mở (Open Source): Hầu hết các dự án mã nguồn nổi tiếng (Linux kernel, React, TensorFlow) đều được phát triển trên GitHub.
  4. Hồ sơ năng lực chuyên nghiệp: Một profile GitHub hoạt động tốt là một "portfolio" sống động, chứng minh kỹ năng và đóng góp của bạn cho nhà tuyển dụng.
  5. Tích hợp và triển khai tự động (CI/CD): Với GitHub Actions, bạn có thể tự động hóa việc kiểm thử, xây dựng và triển khai phần mềm.

Các khái niệm cốt lõi bạn cần nắm vững

Để sử dụng GitHub hiệu quả, hãy làm quen với các thuật ngữ sau:

Thuật ngữ Giải thích đơn giản Ví dụ tương đương trong đời thực
Repository (Repo) Thư mục chứa toàn bộ dự án, bao gồm tất cả các tệp và lịch sử thay đổi. Một dự án hoặc một cuốn sách hoàn chỉnh.
Commit Một "bản chụp" trạng thái của dự án tại một thời điểm cụ thể. Một bản nháp mới của cuốn sách.
Branch (Nhánh) Một phiên bản song song của dự án, thường được tạo ra để phát triển tính năng mới. Một dòng suy nghĩ phụ để thử viết lại một chương.
Pull Request (PR) Yêu cầu để hợp nhất (merge) các thay đổi từ nhánh này sang nhánh khác. Gửi bản nháp cho biên tập viên để xem xét và chấp nhận.
Fork Tạo một bản sao riêng của dự án của người khác trên tài khoản của bạn. Tạo một bản photocopy sách từ thư viện để viết chú thích riêng.
Clone Tải toàn bộ repository từ GitHub về máy tính của bạn. Mượn cuốn sách từ thư viện về nhà.

Quy trình làm việc cơ bản trên GitHub

Một quy trình thường gặp khi đóng góp vào một dự án:

  1. Fork dự án từ repo gốc về tài khoản của bạn.
  2. Clone repo đã fork về máy tính.
  3. Tạo một Branch mới cho tính năng bạn muốn phát triển.
  4. Thực hiện các thay đổi và tạo các Commit có thông điệp rõ ràng.
  5. Push (đẩy) nhánh của bạn lên GitHub.
  6. Tạo một Pull Request từ nhánh của bạn vào nhánh main của repo gốc, mô tả rõ những gì bạn đã làm.
  7. Thảo luận, sửa đổi nếu cần, cho đến khi được Merge (hợp nhất).

Hướng dẫn từng bước: Bắt đầu với GitHub

Bước 1: Tạo tài khoản và thiết lập

  1. Truy cập github.com và đăng ký tài khoản miễn phí.
  2. Cài đặt Git trên máy tính: Tải Git cho Windows/Mac/Linux.
  3. Thiết lập thông tin người dùng toàn cục trong terminal/command prompt:

    git config --global user.name "Tên của bạn"
    git config --global user.email "email@example.com"
    

Bước 2: Tạo Repository đầu tiên

  1. Nhấp vào nút + góc trên cùng bên phải -> New repository.
  2. Đặt tên (ví dụ: my-first-project), thêm mô tả.
  3. Chọn Public (công khai) hoặc Private (riêng tư).
  4. Quan trọng: Tích vào Add a README file. Tệp README.md sẽ là trang giới thiệu dự án của bạn.
  5. Nhấn Create repository. Bạn đã có repo đầu tiên!

Bước 3: Kết nối và làm việc với Repository trên máy tính

Mở terminal tại thư mục dự án của bạn và chạy các lệnh sau:

# Tải repo từ GitHub về
https://github.com/tên-user/my-first-project.git
cd my-first-project

# Tạo một tệp mới, ví dụ index.html
touch index.html

# Thêm tệp vào vùng theo dõi
git add index.html

# Tạo commit đầu tiên
git commit -m "Thêm tệp index.html đầu tiên"

# Đẩy lên GitHub
git push origin main
Enter fullscreen mode Exit fullscreen mode

Làm mới trang repository trên GitHub, bạn sẽ thấy tệp index.html đã xuất hiện.

Các tính năng nâng cao của GitHub

GitHub Actions - Tự động hóa quy trình

Đây là công cụ CI/CD (Continuous Integration/Continuous Deployment) tích hợp sẵn. Bạn có thể thiết lập để:

  • Tự động chạy các bài kiểm thử mỗi khi push code.
  • Tự động triển khai ứng dụng lên server khi merge vào nhánh main.
  • Tự động tạo và publish các bản release.

Ví dụ file .github/workflows/ci.yml cơ bản để chạy test trên Node.js:

name: Node.js CI
on: [push, pull_request]
jobs:
  build:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
    - name: Install dependencies
      run: npm install
    - name: Run tests
      run: npm test
Enter fullscreen mode Exit fullscreen mode

GitHub Pages - Hosting website tĩnh miễn phí

Bạn có thể biến bất kỳ repository nào (thường là repo có tên username.github.io) thành một website tĩnh miễn phí. Đây là cách tuyệt vời để tạo portfolio, blog cá nhân, hoặc documentation cho dự án.

GitHub Discussions & Issues - Nơi giao tiếp của dự án

  • Issues: Dùng để báo lỗi, đề xuất tính năng mới, hoặc thảo luận công việc.
  • Discussions: Nơi trò chuyện cởi mở hơn, hỏi đáp, và chia sẻ ý tưởng không gắn liền với một nhánh code cụ thể.

So sánh GitHub với các nền tảng khác

Tiêu chí GitHub GitLab Bitbucket
Điểm mạnh Cộng đồng lớn nhất, UI thân thiện, GitHub Actions mạnh. CI/CD tích hợp sâu ngay từ đầu, DevOps all-in-one. Tích hợp tốt với Jira/Confluence (Atlassian), miễn phí cho nhóm nhỏ.
Mã nguồn mở Chủ yếu host dự án mã nguồn mở. Cả phiên bản open-source và doanh nghiệp. Hỗ trợ nhưng không phải là điểm nổi bật.
Miễn phí Gói Free đủ dùng cho cá nhân và nhóm nhỏ, repo private không giới hạn. Gói Free mạnh mẽ với CI/CD phút chạy. Gói Free giới hạn người dùng (5 người).
Phù hợp với Cá nhân, startup, dự án mã nguồn mở. Doanh nghiệp cần giải pháp DevOps khép kín. Nhóm đã dùng hệ sinh thái Atlassian.

Câu hỏi thường gặp (FAQ)

1. Tôi có cần biết lập trình trước khi dùng GitHub không?

Không nhất thiết. Bạn hoàn toàn có thể sử dụng GitHub để quản lý văn bản, tài liệu, hoặc các dự án phi mã nguồn. Tuy nhiên, để khai thác hết sức mạnh của nó, kiến thức cơ bản về Git là cần thiết.

2. GitHub có an toàn cho dự án thương mại không?

Có. GitHub cung cấp các gói ProEnterprise với các tính năng bảo mật nâng cao, kiểm soát truy cập, và phân tích lỗ hổng. Nhiều công ty lớn trên thế giới sử dụng GitHub cho các dự án nội bộ của họ.

3. Làm thế nào để đóng góp vào một dự án trên GitHub?

Quy trình chuẩn là: Fork -> Clone -> Tạo Branch mới -> Code -> Push -> Tạo Pull Request và mô tả rõ ràng những thay đổi của bạn. Luôn đọc file CONTRIBUTING.md (nếu có) trong repo để biết quy tắc riêng của dự án đó.

4. GitHub và GitHub Desktop khác nhau thế nào?

GitHub là nền tảng trực tuyến. GitHub Desktop là một ứng dụng máy tính do chính GitHub phát triển, cung cấp giao diện đồ họa (GUI) để sử dụng Git mà không cần gõ lệnh terminal. Nó rất hữu ích cho người mới bắt đầu.

Top comments (0)