1. Git và Github là gì?

Git và GitHub là hai khái niệm liên quan đến quản lý mã nguồn, nhưng chúng khác nhau về bản chất và chức năng. Dưới đây là sự khác biệt chính:

1.1. Git

  • Git là một hệ thống quản lý phiên bản phân tán (distributed version control system)
  • Nó cho phép theo dõi các thay đổi trong mã nguồn, quay lại phiên bản trước đó, làm việc với nhiều nhánh (branch), gộp nhánh (merge), v.v.
  • Git là phần mềm cài trên máy tính, dùng qua dòng lệnh hoặc qua giao diện người dùng như GitKraken, Sourcetree, VS Code,…
  • Có thể dùng Git mà không cần kết nối internet hoặc không cần GitHub.
  • Ví dụ: Khi dùng lệnh git commit có nghĩa là  đang lưu lại thay đổi trong dự án của mình trên máy cục bộ (local).

1.2. Github

  • GitHub là một dịch vụ lưu trữ mã nguồn online, dựa trên Git.
  • Nó cho phép bạn lưu trữ kho mã nguồn (repository) trên đám mây, chia sẻ với người khác, cộng tác nhóm, tạo pull request, theo dõi issue,…
  • GitHub không phải là Git. Nó chỉ là nền tảng web giúp quản lý dự án dùng Git.
  • Ví dụ: Khi bạn dùng lệnh git push origin main, bạn đang đẩy mã nguồn từ máy mình lên GitHub.

2. Công dụng của Git

Git có rất nhiều tác dụng, đặc biệt là trong việc quản lý mã nguồn và làm việc nhóm khi phát triển phần mềm. Dưới đây là những tác dụng chính:

2.1. Theo dõi lịch sử thay đổi của mã nguồn

  • Mỗi lần commit, Git sẽ lưu lại trạng thái mã nguồn tại thời điểm đó.
  • Giúp ta biết ai đã sửa gì, khi nào, và tại sao.
  • Dễ dàng quay lại các phiên bản trước nếu có lỗi xảy ra.
  • Ví dụ: Nếu code bị lỗi sau một thay đổi, ta có thể dùng git log để xem lịch sử và git checkout để quay lại phiên bản ổn định trước đó.

2.2. Làm việc với các nhánh (branches)

  • Git cho phép tạo các nhánh riêng biệt để phát triển tính năng mới hoặc sửa lỗi mà không ảnh hưởng đến nhánh chính (thường là main hoặc master).
  • sau khi hoàn tất, có thể gộp (merge) nhánh vào lại nhánh chính.
  • Ví dụ: Tạo nhánh login-feature để làm chức năng đăng nhập, khi hoàn thành thì gộp vào main.

2.3. Hỗ trợ làm việc nhóm

  • Nhiều lập trình viên có thể cùng làm việc trên một dự án mà không giẫm chân nhau.
  • Git giúp phát hiện xung đột (conflict) và hỗ trợ xử lý dễ dàng.
  • Mỗi người có thể làm trên nhánh riêng, sau đó hợp nhất lại.
  • Ví dụ: Một người làm giao diện, một người xử lý backend, sau đó cùng merge lại.

2.4. Kết hợp với GitHub/GitLab để lưu trữ và chia sẻ dự án

  • Lưu trữ mã nguồn trên cloud
  • Chia sẻ với người khác
  • Làm việc từ xa
  • Tạo pull request, review code, theo dõi lỗi…

3. Công dụng của Github

GitHub là một nền tảng lưu trữ và cộng tác dựa trên Git, với rất nhiều công dụng trong lập trình, phát triển phần mềm và làm việc nhóm. Dưới đây là các công dụng chính của GitHub:

3.1. Lưu trữ mã nguồn online (trên cloud)

  • GitHub cho phép đẩy mã nguồn từ máy tính lên Internet, để lưu trữ an toàn, truy cập ở mọi nơi.
  • Không sợ mất mã nguồn nếu máy tính bị hỏng.
  • Ví dụ: Ta có thể đẩy dự án cá nhân của mình lên GitHub để lưu trữ hoặc backup.

3.2. Làm việc nhóm và cộng tác

  • GitHub hỗ trợ nhiều người cùng làm trên một dự án.
  • Mỗi người có thể làm việc trên nhánh riêng, sau đó mở Pull Request để hợp nhất (merge) vào nhánh chính.
  • Có thể review code, gợi ý thay đổi, và thảo luận trực tiếp.
  • Ví dụ: 1 nhóm cùng làm đồ án, mỗi người phát triển một phần, rồi merge lại trên GitHub.

3.3. Theo dõi lịch sử, thay đổi và phiên bản

  • Giống như Git, GitHub lưu toàn bộ lịch sử thay đổi.
  • Dễ xem lại ai đã làm gì, sửa cái gì, lúc nào.
  • Hữu ích cho việc debug hoặc audit.

3.4. Quản lý issue và công việc

  • Có thể tạo Issues để báo lỗi hoặc ghi chú công việc cần làm.
  • Gán labels, milestones, và assign cho các thành viên.
  • Hữu ích khi quản lý project theo mô hình Agile / Scrum.
  • Ví dụ: Ghi lại lỗi “login bị lỗi nếu nhập sai mật khẩu 3 lần” và gán cho thành viên xử lý.

3.5. Tạo tài liệu cho dự án

  • GitHub hỗ trợ tạo file README.md (viết bằng Markdown) để giới thiệu và hướng dẫn sử dụng dự án.
  • Có thể tạo wiki, hướng dẫn cài đặt, API docs,…

3.6. Mã nguồn mở (Open Source) và chia sẻ cộng đồng

  • GitHub là nơi lớn nhất cho các dự án mã nguồn mở.
  • Xem cách người khác code
  • Học hỏi từ các project thực tế
  • Góp phần vào cộng đồng (contribute)
  • Ví dụ: Tham gia phát triển thư viện React, Laravel, TensorFlow…

About the Author

Minh Thông

View all author's posts

Leave a Comment

Your email address will not be published. Required fields are marked *

Bài viết khác

Domain

1. Domain trong công nghệ thông tin (CNTT) Tên miền (Domain name): Là địa chỉ dễ nhớ của một trang web trên Internet, ví dụ: google.com, facebook.com. Tên miền giúp người dùng truy cập website mà không cần nhớ địa chỉ IP phức tạp như 142.250.190.14. Miền trong mạng máy tính (Network domain): Trong mạng nội […]

Agile

1. Tổng quan về Agile: Agile được hiểu ngắn gọn là quản lý dự án một cách linh hoạt bằng việc chia dự án lớn thành các dự án nhỏ để quản lý đồng đều với mục đích giúp các dự án lớn có thể phát triển và cải tiến một cách nhanh chóng đồng […]

Khoá đào tạo số 18 – buổi học ngày 12-01-2020 : lập trình website cho người mới & người chưa biết gì: cơ bản html css

Buổi học diễn ra tốt đẹp Nội dung buổi học Cơ bản về website, cấu trúc website Domain, hosting / server Cơ bản về html Cơ bản về css Cơ bản về javascript Các thẻ html Các thuộc tính css Về giao diện trên nhiều thiết bị ( responsive ) Về bootstrap 4

Khoá đào tạo số 16 – buổi học ngày 22-12-2019 : lập trình website cho người mới & người chưa biết gì: cơ bản html css

Buổi học diễn ra tốt đẹp Nội dung buổi học Cơ bản về website, cấu trúc website Domain, hosting / server Cơ bản về html Cơ bản về css Cơ bản về javascript Các thẻ html Các thuộc tính css Về giao diện trên nhiều thiết bị ( responsive ) Về bootstrap 4

Khoá đào tạo số 11 – buổi số 5 ngày 20-10-2019 : lập trình website cho người mới & người chưa biết gì : cơ bản về wordpress (tt)

Buổi học diễn ra tốt đẹp Tóm tắt Nội dung buổi học khóa số 11 buổi 5 Giới thiệu Cơ bản về wordpress Cài đặt xampp / appserv làm server ảo Cài đặt wordpress lên máy tính Sử dụng mục Post / Bài viết Sử dụng mục Page / Trang Sự khác biệt giữa Page […]

Thông báo nghỉ ngày 13-10-2019

Dear các bạn học website khóa số 11,12,13… Hà HuỳnhBùi Minh NhựtHa NaBui HienPhạm Thanh TràKhải HoànCông KaHồng NguyễnĐình HảiHa NaThông Huyền TrangMim IviTri LeKim Truc Mai…. Vì chủ nhật này (13/10/2019) các anh đều bận công việc không sắp xếp được tuần này các bạn nghỉ ngơi ăn chơi nhẹ nhàng không cần đi học […]