GitHub là một website cũng như dịch vụ mà chúng ta được biết là được giới “coder” thường xuyên sử dụng, và cũng nhiều không thật sự biết GitHub là gì. Bạn có muốn biết những thứ mà GitHub có thể làm được không? Hãy xem tiếp bài viết này nhé.
Nội dung chính:
“Git” trong GitHub
Để có thể hiểu GitHub là gì, thì đầu tiên bạn cần phải hiểu Git là gì trước đã. Git là hệ thống quản lý phiên bản mã nguồn mở (open-source version control system) được phát triển bởi Linus Trovalds – cũng là người tạo ra hệ điều hành Linux. Thông tin thêm là Github cũng có sự tương đồng với các hệ thống quản lý phiên bản khác là Subversion (SVN), CVS và Mecurial.
Vậy, Git cũng là một hệ thống hỗ trợ quản lý phiên bản, nhưng Git làm được gì? Khi một lập trình viên tạo một project, họ sẽ không ngừng update các bản cập nhật liên tục cho chính project đó, ngay cả khi project đó chưa ra mắt hoặc đã ra mắt được một thời gian.
Hệ thống quản lý phiên bản giúp cho việc lưu trữ, chỉnh sửa dễ dàng hơn trên kho lưu trữ trên server của Git. Cho phép các lập trình viên có thể cộng tác với nhau, cũng như tải về các phiên bản mới nhất của project, thay đổi chúng, và upload những thay đổi mới nhất lên Git. Tất cả các developer khác cũng sẽ thấy được các thay đổi đó, download, và góp phần hoàn thiện dự án.
Đặc biệt, những người bình thường họ cũng có thể truy cập vào project đó và tải chúng để sử dụng một cách thông thường (nếu project đó đang ở chế độ Public). Phần lớn người dùng Linux sẽ quen thuộc với cách hoạt động của Git hơn, sử dụng Git, SVN, hoặc các hệ thống tượng tự cực kỳ thông dụng để tải về các file cần thiết – đặc biệt là khi chúng ta cần biên dịch (compiler) project đó từ source code.
Git là hệ thống quản lý phiên bản được đa số các developer nổi tiếng khuyên dùng, bởi vì nó sở hữu nhiều tính năng, đặc điểm nổi trội hơn các hệ thống quản lý hiện nay. Với cơ chế lưu trữ hiệu quả và cực kỳ an toàn. Nếu bạn muốn biết thêm nhiều thông tin chi tiết hơn, thì trang Git Basic sẽ giải thích tường tận cách hoạt động của Git hơn.
“Hub” trong GitHub
Chúng ta đã biết được Git chính là một hệ thống quản lý phiên bản, tương tự nhưng tốt hơn nhiều so với những hệ thống khác. Vậy, điều gì làm cho GitHub trở nên đặc biệt? Git sử dụng các dòng lệnh (command-line) để hoạt động, nhưng tất cả mọi thứ bao gồm cả Git đều dựa trên Hub – GitHub.com – nơi mà những lập trình viên lưu giữ các dự án của mình và những người có chung ý tưởng.
Version Control là gì
Version Control sẽ hỗ trợ các developer theo dõi và quản lý những thay đổi có trong code trên các project của mình. Bây giờ, với sự phát triển nhanh chóng của các dự án phần mềm, website thì sử dụng Version Control là một việc hết sức cần thiết, ví dụ như WordPress.
Thời điểm hiện tại, WordPress được xem là một project khá được nhiều người sử dụng để có thể tạo dựng các website bán hàng. Nếu developer đang cần chỉnh sửa một phần nhỏ, hoặc thêm thắt tính năng cho WordPress, thì sẽ không an toàn khi mà để họ trực tiếp chỉnh sửa ngay trên source code chính thức được.
Thay vào đó, Version Control sẽ là một lựa chọn an toàn khi bạn sử dụng tính năng phân nhánh (branching) và gộp (merging).
Với branching, developer sẽ nhân bản một phiên bản tương tự source code. Sau đó những lập trình viên sẽ cải tiến thêm một số tính năng trên branch này và test xem chúng có hoạt động không chưa khi gộp (merge).
Sau khi quá trình test thành công, thì những nhà lập trình sẽ gộp (merge) chúng lại với source code chính thức.
Và nếu có bất kỳ vấn đề gì, bạn có thể phục hồi lại source code thông qua GitHub.
Repository
Repository (còn được gọi là repo) là nơi mà tất cả các file liên quan tới project được lưu trữ. Mỗi dự án sẽ có một kho lưu trữ khác nhau, và bạn có thể truy cập thông qua URL của nó.
Forking
Forking được sử dụng khi bạn muốn tạo thêm một project mới dựa trên project đã có từ trước. Đây là một tính năng cực kỳ hữu ích được các developer ủng hộ khi cần phát triển thêm nhiều tính năng cho phần mềm hoặc project nào. Nếu bạn đang tìm kiếm một project có trên GitHub mà muốn cải tiến thêm tính năng, thì bạn có thể “Fork” kho lưu trữ (repository) đó, chỉnh sửa những gì mà bạn muốn, và cho ra mắt phiên bản cải tiến của project đó trên một repo khác. Nếu repo gốc có bất kỳ update nào, bạn cũng có thể dễ dàng add những update đó vào fork hiện tại của bạn mà không ảnh hưởng tới những gì bạn đang làm.
Pull Request
Bạn đang làm việc trên fork của một repo được một thời gian, bạn đã thêm vào một số tính năng đặc biệt cho project đó, và bạn muốn những tính năng đó sẽ được thêm vào project/repository chính thức, tuy nhiên bạn cần sự cho phép của chủ sở hữu của repo đó cho phép. Do đó tính năng Pull Request ra đời, các lập trình viên chính thức sẽ biết được những thứ bạn làm, tiến độ công việc, và cho phép những tính năng đó được add thêm vào project chính thức. Nếu bạn có bất kỳ vấn đề nào trong quá trình pull request, GitHub cung cấp cho bạn và lập trình viên quản lý dự án đó những phương tiện để trao đổi thông tin với nhau.
Social networking
Về khía cạnh hỗ trợ mạng xã hội của GitHub thì đây là một tính năng cực kỳ mạnh mẽ, cho phép các dự án được phát triển nhiều hơn. Mỗi người dùng trên GitHub đều có các profile riêng của bản thân để có thể kiểm tra lịch sử công việc và tham gia vào các project khác thông qua pull requests.
Các cập nhật, thay đổi trên project sẽ được công khai bàn luận trực tiếp, do đó khi sau này có thêm nhiều developer hoặc các cộng tác viên thì họ có thể biết được những gì mà project đã thực hiện trước đó để đẩy mạnh tiến độ công việc hơn. Trước khi GitHub được ra mắt, nếu lập trình viên mong muốn được đóng góp cho một project thì họ cần phải liên hệ trực tiếp với tác giả của project đó – thông qua email chẳng hạn – và thuyết phục để họ cho phép bạn được phép đóng góp cho dự án đó. Do đó với sự ra mắt của GitHub, thì bây giờ các lập trình viên đã có thể dễ dàng đóng góp những ý tưởng của mình hơn.
Changelogs
Khi có quá nhiều người tham dự vào một project, thì việc theo dõi tiến trình công việc khá là khó khăn – người này thay đổi gì, khi nào và họ lưu những thay đổi này ở đâu. Đừng lo lắng, GitHub sẽ quản lý được tất cả các vấn đề này bằng cách theo dõi mọi thứ khi chúng được đẩy (push) lên repo.
Hướng dẫn cơ bản cách sử dụng GitHub
Để bạn có một cái nhìn rõ ràng hơn về giao diện của GitHub thì mời các bạn xem tiếp sau đây
Từ đây, bạn sẽ biết được có bao nhiêu branch đang được sử dụng, cũng như khi có bất kỳ ai đó thực hiện commit (một dạng giống save file). Phụ thuộc vào cách mà repo thiết lập, bạn cũng có thể tạo riêng branch cho mình và commit chúng.
Và mỗi khi bạn thực hiện bất kỳ thay đổi nào, bạn sẽ submit chúng ngược lại với branch bằng cách sử dụng pull request. Như mình đã giải thích ở trên, pull request là hành động “đẩy” code lên branch mà chúng ta cần sự chấp thuận của người quản lý source code. Và cũng như giúp họ biết được chính xác những gì mà bạn đã làm trên branch đấy.
Và nếu bạn muốn edit source code trên chính tài khoản của mình mà không bị giới hạn thì fork sẽ là tính năng mà bạn cần (fork cũng tương tự như branch, nhưng fork sẽ làm được nhiều thứ hơn).
GitHub không chỉ dành cho các Developer
Có lẽ trong bài viết này mình đề cập khá nhiều cách dùng GitHub cho các lập trình viên, và chắc hẳn bạn cũng đang nghĩ rằng GitHub chỉ dành cho dân lập trình, tuy nhiên, bạn có thể upload tất cả mọi thứ lên GitHub. Nếu đang ngồi trên ghế nhà trường, thì Word Excel sẽ là những phần mềm mà bạn thường xuyên sử dụng nhất, và với mỗi bài thuyết trình thì việc chỉnh sửa nội dung là một cách bình thường. Do đó bạn có thể sử dụng GitHub để làm một hệ thống quản lý tất cả các phiên bản cho mình.