GitHub là gì? Bạn là người mới bắt đầu tìm hiểu hoặc đang là một lập trình viên tìm kiếm một phần mềm để hỗ trợ công việc của mình, quản lý nhiều dự án với các phiên bản code khác nhau. Thì GitHub sẽ giúp bạn làm điều đó, nó giống như một một mạng xã hội dành cho các lập trình viên. Cùng Vietnix tìm hiểu về GitHub ngay bây giờ nhé.
GitHub là gì?
GitHub là một hệ thống quản lý dự án và phiên bản code, GitHub được coi giống như một mạng xã hội dành riêng cho các lập trình viên. Với GitHub, các lập trình viên có thể clone lại mã nguồn từ một repository. Nó cũng là một dịch vụ máy chủ repository giúp lưu trữ code và mỗi người có thể tạo tài khoản trên đó để tạo ra các kho chứa của riêng mình để làm việc.
Github có đầy đủ tính năng của Git, ngoài ra nó còn bổ sung những tính năng về social giúp các developer có thể tương tác với nhau.
Bạn có thể hình dung GitHub như một trang mạng xã hội dành riêng cho lập trình viên cung cấp các chức năng social networking như feeds, follower và network graph để các lập trình viên học hỏi kinh nghiệm từ lịch sử commit.
Hiện nay, GitHub có 2 phiên bản bao gồm: miễn phí và trả phí. Với phiên bản có phí, các doanh nghiệp có thể sử dụng để tăng khả năng quản lý team cũng như phân quyền bảo mật dự án. Ngoài ra, đối với phiên bản miễn phí hầu hết người dùng có thể sử dụng để lưu trữ soure code.
Xem thêm: Git Commit là gì? Cách sử dụng lệnh Git Commit
Lịch sử của GitHub
GitHub được tạo ra bởi Tom Preston – Werner, Chris Wanstrath và PJ Hyett, được viết bằng ngôn ngữ Ruby on Rails và Erlang. Và được phát hành chạy chính thức vào tháng 4 năm 2008. Tính đến tháng 3 năm 2018 GitHub được đánh giá là dịch vụ lưu trữ mã nguồn lập trình lớn nhất thế giới.
Hiện nay, GitHub có khoảng hơn 25 triệu người dùng và hơn 80 triệu mã nguồn dự án. Do đó GitHub trở thành 1 phần không thể thiếu đối với các cộng đồng phát triển mã nguồn mở và cộng đồng các Developer.
Cách thức hoạt động trên GitHub là gì?
Biết về khái niệm GitHub là gì thôi là chưa đủ. Bạn muốn tìm hiểu rõ hơn về GitHub thì bạn phải nắm được cách thức hoạt động của nó. GitHub gồm hai nền tảng khi làm việc đó là local workflow và server workflow.
Với local workflow, bạn có thể thay đổi source code, sau đó mới xác nhận các thay đổi tại server workflow. Nhưng cũng cần lưu ý rằng, bản xác nhận trên server phải là bản hoàn chỉnh, nếu chưa hoàn chỉnh có thể ảnh hưởng đến các thành viên khác trong team khi sử dụng kho lưu trữ.
Bạn sử dụng kho lưu trữ của server, người dùng phải cung cấp mã xác nhận, từ đó sẽ so sánh SSH key ở local của bạn và SSH key trên server tương ứng với tài khoản đã đăng ký trước đó.
Thao tác repository
Thường sẽ sử dụng 2 lệnh là git add và git commit:
- Git add: Dùng để add file đã thay đổi vào stage.
- Git commit: Dùng để xác nhận các file đã add vảo satge lên repository trên local.
Repository trên server GitHub
Để có một bản hoàn chỉnh và ổn định để xác nhận cập nhật lên repository server với:
- push: Thay đổi từ repository local lên repository server.
- fetch: Cập nhật thay đổi từ repository server về repository local.
- pull/rebase: Sao chép source code từ server về local workspace.
Một số tính năng của GitHub
GitHub là trang mạng xã hội lớn nhất dành cho lập trình viên bao gồm những tính năng cốt lõi như:
- Wiki, issue, thống kê, đổi tên dự án.
- Watch project: Có thể theo dõi hoạt động các dự án của người khác, có thể xem quá trình phát triển phần mềm và thực trạng dự án như thế nào?
- Follow user: Theo dõi hoạt động của người khác.
Một vài khái niệm của Git bạn cần nắm
- Repository: Nơi chứa tất cả thông tin cần thiết để duy trì và quản lý các dữ liệu, mã nguồn của project.
- git: Là prefix của các lệnh được sử dụng dưới CLI.
- Snapshot: Lưu lại nội dung tất cả các tập tin, thư mục dưới dạng ảnh chụp.
- branch: Có thể coi là nhánh, thể hiện sự phân chia các phiên bản khi 2 phiên bản đó có sự khác biệt nhất định.
- commit: Thao tác báo cho hệ thống bạn muốn lưu trạng thái, hay ghi nhận lịch sử các thao tác hay một thư mục nào đó trên repository.
- clone: Được gọi là nhân bản, hay thực hiện tạo bản sao. Bạn sẽ có được tất cả lịch sử xảy ra trên repository. Trường hợp nếu ổ cứng máy chủ hư, bạn có thể sử dụng bất kỳ bản sao trên máy khách nào để khôi phục lại trạng thái máy chủ.
- folk: Folk là thao tác thực hiện sao chép repository của chủ sở hữu khác về tài khoản của mình.
- tag: Sử dụng để đánh dấu một commit trong trường hợp có quá nhiều commit không thể kiểm soát được.
- remote: Sử dụng để điều khiển các nhánh từ một repository trên máy chủ, đối xử với các nhánh trên remote tương tự như đối xử với các nhánh trên local.
- diff: So sánh sự khác giữa phiên bản hiện tại với phiên bản muốn so sánh, nó sẽ thể hiện các sự khác nhau.
- gitignore: File mặc định của git sử dụng để loại bỏ (ignore) các thư mục, file mà mình không muốn push lên git server.
Lợi ích của GitHub đối với lập trình viên
Quản lý source code dễ dàng
Khi bạn tạo một đoạn repo thì toàn bộ soure code sẽ được lưu trên GitHub. Từ đây, bạn có thể theo dõi và xem lại các quá trình mình đã làm thông qua các bình luận sau mỗi lần commit và đặc biệt là nhiều người có thể làm một repo.
Nó giúp bạn có thể biết ai đã commit và commit những gì. Và giúp cho source code của bạn có thể phát triển nhiều nhánh hơn. Nguyên tắc là bạn có thể rẽ ra nhiều nhánh để phát triển các dự án nhưng sau cùng bạn phải thống nhất lại vào nhánh Master để được một dự án hoàn chỉnh.
Tracking thay đổi qua các version
Khi có nhiều thành viên cùng thực hiện một dự án thì bạn rất khó để theo dõi revison (để biết ai thay đổi những gì, file được lưu ở đâu). Thì GitHub sẽ lưu lại những thay đổi đó và được push lên repository. Từ đó, bạn có thể dễ dàng theo dõi được những thay đổi và các file được lưu ở đâu.
Markdown
Markdown là một định dạng text trên web. Từ đó, bạn có thể thay đổi và chỉnh sửa cách hiển thị của tài liệu, fomat in đậm hoặc in nghiêng, tạo danh sách, thêm hình bạn có thể làm trên Markdown. Nó chỉ là một đoạn text đơn giản với những ký tự đặc biệt được chèn vào như #, *. Bạn có thể sử dụng Markdown trogn GitHub ở: Git, Comments tại issue và pull request, hoặc các file có đuổi .md hay .markdown extention.
Làm đẹp CV xin việc
Soure code luôn là minh chứng tốt nhất để thể hiện bạn là một lập trình viên thực thụ. Nếu có một phần GitHub trong CV, nó có thể giúp làm nổi bật CV của bạn. Và có thể gây ấn tượng đối với các nhà tuyển dụng. Vì vậy, bạn cần tìm hiểu GitHub là gì, cũng như tạo tài khoản để bạn có thể làm quen và sử dụng GitHub thành thạo hơn.
Nói chung, nếu bạn đang tìm hiểu và đang làm lập trình viên thì bạn cần có những kỹ năng về GitHub để phục vụ công việc của mình hoặc để đi ứng tuyển được đánh giá tốt hơn.
Cải thiện kỹ năng code
GitHub tạo môi trường để khuyến khích cải thiện và nâng cao kỹ năng code bằng cách theo dõi và so sánh những thay đổi thường xuyên. Bạn có thể tiếp xúc với dự án open source, contributors, commit được cập nhật mỗi ngày. Từ đó, bạn có thể theo dõi, xem xét và học tập từ những thay đổi đó, từ đó bạn có thể cải thiện kỹ năng code của mình ngày càng hoàn thiện hơn.
Mở rộng mối quan hệ
GitHub với mạng lưới người sử dụng vô cùng lớn trên toàn thế giới bạn có thể giao lưu, trao đổi và chia sẻ những kinh nghiệm, ý tưởng. Bạn có thể kết bạn để nói chuyện, chia sẻ với nhau để học hỏi được nhiều thứ mới, sáng tạo mới để phục vụ cho việc học và công việc của mình ngày càng phát triển và thăng tiến hơn.
Kho tài nguyên
Chức năng Explore, bạn có thể theo dõi và tìm kiếm những dự án mã nguồn mở theo đúng technology pattern mà bạn thích. Ngoài ra, GitHub còn hỗ trợ tìm kiếm mã nguồn không kể ở dự án riêng biệt hay là một website. Nền tảng này cũng có SEO khá tốt nên người dùng có thể tìm kiếm bất kỳ string nào được công bố.
Trên server GitHub có những Workflow script chạy tự động. Lập trình viên có thể dùng chúng để phản hồi các sự kiện trên repositories hoặc thực hiện vài thao tác.
Github Action
GitHub Package Registry
GitHub registry cho phép lập trình viên duy trì Distribution Registies của họ gồm NPM, Docker, Maven, Nuget và RubyGem.
Các yếu tố cần thiết của GitHub là gì?
GitHub Repository
GitHub repository có thể được sử dụng để lưu trữ một dự án phát triển. Nó có thể chứa các thư mục và bất kỳ loại file nào (HTML, CSS, JavaScript, Documents, Data, Images). GitHub repository cũng bao gồm licence file và file README về dự án. GitHub repository có thể được sử dụng để lưu trữ ý tưởng hoặc bất kỳ tài nguyên nào bạn muốn chia sẻ.
GitHub Branch
Một GitHub branch được sử dụng để làm việc với các phiên bản khác nhau của kho lưu trữ cùng một lúc.Theo mặc định một repository có một master branch (nhánh chính). Bất kỳ nhánh nào khác đều là một bản sao của nhánh chính.
Các nhánh mới dành cho sửa lỗi và tính năng hoạt động tách biệt với nhánh chính. Khi các thay đổi đã sẵn sàng, chúng có thể được hợp nhất vào nhánh chính. Nếu bạn thay đổi nhánh chính trong khi làm việc trên nhánh mới, những thay đổi này có thể được cập nhật vào.
>> Xem thêm: MVC là gì? Ứng dụng của mô hình MVC trong lập trình.
GitHub Commits
Commit là thao tác ghi lại việc thêm/thay đổi file hay thư mục vào kho lưu trữ. Các commit sẽ được ghi lại theo thứ tự thời gian chỉnh sửa. Chỉ cần theo dõi ở đây bạn có thể thấy được lịch sử chỉnh sửa và thay đổi các file. Các lập trình viên có thể nhận được các thay đổi theo tiến trình update.
GitHub Pull Requests
Pull Requests là trái tim của sự hợp tác GitHub. Với một Pull Requests, khi người dùng đề xuất các thay đổi của họ thì sẽ được hợp nhất với master. Pull requests hiển thị sự khác biệt về nội dung , thay đổi, bổ sung và subtractions bằng màu sắc (xanh lá cây và đỏ).
Sau khi bạn có một sự thay đổi, bạn có thể mở một Pull requests và bắt đầu một cuộc thảo luận, ngay cả trước khi code được kết thúc. Một cách tuyệt vời để học GitHub, trước khi thực hiện các dự án lớn hơn, là mở các Pull requests trong kho lưu trữ của riêng bạn và tự hợp nhất chúng.
Bạn hợp nhất mọi thay đổi vào bản gốc bằng cách nhấp vào nút “Merge pull request”.
Sau khi hợp nhất, bạn có thể xóa nhánh bằng cách nhấp vào “Delete branch button”.
Tính năng API của GitHub
Ngoài ra, Git và GitHub còn hỗ trợ tính năng API cho lập trình viên và người dùng khác nhằm quản lý nguồn dữ liệu dễ dàng và khoa học hơn, với một số tính năng cơ bản của API như:
- API giúp bạn cập nhật kho dữ lưu trữ thông qua web browser. Cho phép chỉnh sửa các file source code thông qua http-post.
- API hỗ trợ người dùng so sánh code thông qua code commit, comment. Đồng thời bạn cũng có thể đưa ra nhận xét thông qua web browser.
- APi cho phép người dùng đăng ký một đường link cho các kho dữ liệu.
Hướng dẫn sử dụng GitHub cơ bản
Cách tạo GitHub Repository
Bước 1: Tạo tài khoản GitHub theo đường link dưới đây.
Đăng ký GitHub tại: https://github.com/
Bước 2: Sau khi tạo tài khoản và kích hoạt thành công. Bây giờ, bạn bắt đầu tạo một project bằng cách click vào Start a new project.
Bước 3: Bạn nhập các thông tin cần thiết như:
- Nhập tên Repository và nhấn nút Create Repository.
- Lưu ý: Mặc định Repository là public thì bất cứ ai cũng có thể xem được repo này. Còn không bạn để Private để quản lý nội bộ.
- Bạn có thể thêm README để giới thiệu repo kèm với một file .gitgnore. GitHub có sẵn các template bạn có thể chọn một mẫu phù hợp với dự án của mình.
Tạo branch trên GitHub
Bạn có thể thực hiện với các bước như sau:
Bước 1: Chọn mục dropdown branch > Branch: master.
Bước 2: Danh sách branch xổ ra bạn có thể chọn để tạo thêm một branch mới.
Tải project GitHub về máy tính
Bạn có thể sử dụng 1 trong 2 cách dưới đây để tải dự án từ GitHub:
- Chọn Zip toàn bộ dự án để tải về.
- Bạn có thể clone dự án về bằng lệnh git hoặc bạn có thể click vào “Clonr or Download “. Sau đó, bạn copy đường dẫn và gõ trong cửa sổ terminal trên máy tính như sau.
git clone git@github.com:duong-dan.git
Lời kết
Qua bài viết này hy vọng bạn có thể hiểu được định nghĩa GitHub là gì và tầm quan trọng của GitHub đối với các lập trình viên như thế nào. Để có thể phát triển hiệu quả hơn trong công việc của mình bạn nên tìm hiểu và học sử dụng GitHub ngay từ hôm nay. Chúc các bạn thành công.