Github là gì?
Note: This post is over 11 years old. The information may be outdated.
Github, còn được gọi là social network dành cho developer đi vào hoạt động tháng 2 năm 2008, là một dịch vụ sử dụng hệ thống quản lý phân tán giúp người dùng lưu trữ source code cho các dự án. Git là một mô hình quản lý source phân tán, nó có mọi tính năng của một source control như SVN và hơn thế nữa. GitHub cung cấp dịch vụ thương mại và cả tài khoản miễn phí cho các dự án nguồn mở. GitHub đã trở thành và vẫn là server Git lưu trữ source code phổ biến nhất trên thế giới cho đến nay. Các nền tảng Git alternative khác như GitLab, Gitea, và Gitpod cũng có sẵn, nhưng GitHub vẫn là lựa chọn hàng đầu của cộng đồng.
GitHub hiện có hàng triệu developers và hàng chục triệu repositories, trở thành nền tảng lưu trữ mã nguồn lớn nhất thế giới. Hầu hết các dự án open source lớn và hàng triệu công ty (từ startups đến những tập đoàn lớn như Microsoft, Google, Amazon) đều sử dụng GitHub, cho thấy tính phổ biến của GitHub trong cộng đồng lập trình toàn cầu.
Cách thức làm việc với GitHub
Làm việc với GitHub nói riêng hay hệ thống GIT nói chung có 2 workflow chính là local workflow và server workflow.
Bạn có thể làm mọi chuyện thay đổi source code ở local, sau khi đã thay đổi xong, bạn sẽ commit những thay đổi đó lên server và bản lên server phải là bản hoàn chỉnh một tính năng nào đó, hoặc fix bug xong, test xong hoặc ít nhất bản đó phải chạy được. Không được commit code dở dang, chưa qua test lên repository server sẽ làm ảnh hưởng đến các thành viên khác, ngược lại bạn có thể làm điều đó ở repository local (Bạn cũng có thể tạo một branch ở server cho việc commit code dở dang hay tính năng chưa hoàn thành như từng làm với SVN, nó sẽ chiếm space ở server cũng như làm mất thời gian của bạn vào việc tương tác kết nối với server, vậy tại sao không commit nó lên repository local nhỉ, vừa nhanh thao tác lại không mất space của server.
Mở rộng: từ repository của github ta có thể theo phương thức của Git tạo bản build cho production site bằng cách push thay đổi lên nó. Khi tương tác với repository server (cập nhật hay thay đổi) GITHUB đòi hỏi xác thực nhận dạng "Bạn là ai". GitHub hỗ trợ nhiều cách xác thực: SSH keys, Personal Access Tokens, GitHub CLI, OAuth, và SAML SSO. SSH keys vẫn là một trong những cách phổ biến nhất để xác thực với GitHub repositories.
Làm việc với repository ở local
Với 2 command thường dùng là git add và git commit
git add: add file đã thay đổi vào stagegit commitcommit các file đã add vào stage lên repository ở local Ngoài ra bạn xem một số command khác
Làm việc với repository ở server github
Sau khi đã quậy tè le ở local, cuối cùng khi có một bản ổn định và hoàn tất ta sẽ quyết định cập nhật nó lên repository server với:
git push: push thay đổi từ repository local lên repository servergit fetch: cập nhật thay đổi từ repository server về repository localgit pull/git rebase: sao chép source code từ server về local workspace (tương đương checkout của SVN)
Tính năng API của Github
Ngoài những tính năng tuyệt vời của hệ thống quản lý source phân tán GIT nói chung, Github còn hỗ trợ người dùng những tính năng quan trọng thông qua API sau:
- API to Update The Repository via HTTP: GitHub hỗ trợ người dùng có thể edit file source code từ web browser thông qua HTTP - POST
- API to Access Compare Views: Tính năng này hỗ trợ người dùng review và so sánh code của dự án thông qua việc xem các commit, comments, các dòng khác nhau giữa 2 version của file code ... Tính năng này cũng thông qua HTTP - POST, người dùng có thể thực hiên trên web browser.
- API to Manage Service Hooks: GitHub hỗ trợ tính năng mở rộng post-receive hooks. Tính năng này cho phép người dùng đăng ký 1 URL của mình (như là một web hook) cho các respository. Bất cứ khi nào có người push source code của họ lên repository, GitHub sẽ thông báo cho bạn biết bằng cách POST thông tin (dạng JSON) về lần push đó đến URL mà bạn đã đăng ký trước đó. Còn rất nhiều API hữu ích khác, các bạn có thể xem tất cả tại GitHub API Documentation