GitHub là gì? Giới thiệu tính năng và hướng dẫn cài đặt GitHub

Làm thế nào để lưu trữ source code sau mỗi lần update dự án? GitHub đã ra đời để giải quyết vấn đề này! GitHub là một trong những resource phổ biến hiện nay để lưu trữ, chia sẻ mã nguồn và làm việc cùng nhau trên các dự án. Nếu bạn thấy GitHub thú vị và muốn tìm hiểu thêm, hãy đọc hết bài chia sẻ về GitHub này của TopDev. Chúng tôi sẽ giải thích GitHub là gì, các tính năng nổi bật, nó được sử dụng để làm gì và cách bắt đầu sử dụng GitHub.

Github là gì?

GitHub là một mạng xã hội đặc biệt dành cho lập trình viên, là một hệ thống quản lý dự án, lưu trữ source code, theo dõi và cộng tác trong các dự án phần mềm. Github là gì?

Các lập trình viên có thể clone lại mã nguồn từ một repository và Github chính là một dịch vụ máy chủ repository công cộng, 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 để có thể làm việc.

Ngoài ra, GitHub là một dịch vụ nổi tiếng cung cấp kho lưu trữ mã nguồn Git cho các dự án phần mềm. Github có đầy đủ những tính năng của Git, ngoài ra nó còn bổ sung những tính năng về social để các developer tương tác với nhau.

GitHub có 2 phiên bản: miễn phí và trả phí. Với phiên bản có phí thường được các doanh nghiệp 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.
Còn lại thì phần lớn chúng ta đều sử dụng Github với tài khoản miễn phí để lưu trữ source code.

Github cung cấp các tính năng social networking như feeds, followers, và network graph để các developer học hỏi kinh nghiệm của nhau thông qua lịch sử commit.

Nếu một comment để mô tả và giải thích một đoạn code. Thì với Github, commit message chính là phần mô tả hành động mà bạn thực hiện trên source code.

Github trở thành một yếu tố có sức ảnh hưởng lớn trong cộng động nguồn mở. Cùng với Linkedin, Github được coi là một sự thay thế cho CV của bạn. Các nhà tuyển dụng cũng rất hay tham khảo Github profile để hiểu về năng lực coding của ứng viên.

Giờ đây, kỹ năng sử dụng git và Github từ chỗ ưu thích sang bắt buộc phải có đối với các ứng viên đi xin việc.

GitHub hoạt động như thế nào?

Với GitHub các lập trình viên có thể tạo tài khoản, tải lên các tệp và quản lý các dự án lập trình.

Tuy nhiên, sức mạnh thực sự của GitHub nằm ở khả năng cộng tác giữa các người dùng, đặc biệt là các nhóm phát triển làm việc cùng nhau trên các dự án mã nguồn mở hoặc các dự án doanh nghiệp.

Hầu hết các dự án phát triển phần mềm đều được xây dựng bởi một nhóm lập trình viên. Những thành viên trong nhóm này có thể làm việc tại một cùng công ty hoặc từ xa, đồng bộ hoặc không đồng bộ. Điều này tạo ra nhiều thách thức cho việc hợp tác phát triển phần mềm, nhưng GitHub giúp quá trình này trở nên dễ dàng hơn nhờ vào một số tính năng.GitHub hoạt động như thế nào?

GitHub tập trung mã nguồn và tài liệu trong một nơi duy nhất

GitHub cho phép tất cả mã nguồn và tài liệu dự án được lưu trữ tập trung trong các “repository” (kho lưu trữ). Điều này đảm bảo rằng bất kỳ ai muốn đóng góp vào dự án đều có quyền truy cập vào những tài nguyên cần thiết, giảm thiểu các vấn đề về truy cập thông tin. Mỗi repository thường đi kèm với các hướng dẫn cụ thể, giúp người tham gia hiểu được mục tiêu và quy tắc của dự án.

Quản lý xung đột mã

Lập trình không chỉ đơn giản là viết mã; nó còn đòi hỏi sự sáng tạo và linh hoạt. Ví dụ, hai lập trình viên có thể đang làm việc trên các phần mã khác nhau, nhưng chúng cần phải hoạt động hài hòa với nhau. Đôi khi, một phần mã có thể khiến phần mã khác bị lỗi, hoặc có thể có tác động không mong muốn lên cách mà phần khác hoạt động. GitHub giải quyết vấn đề này bằng cách hiển thị rõ ràng những thay đổi từ hai lập trình viên trước khi họ đẩy (push) mã lên “branch” (nhánh chính) của dự án. Điều này giúp phát hiện và khắc phục các lỗi tiềm ẩn trước khi chúng ảnh hưởng đến toàn bộ dự án.

GitHub giúp theo dõi và khôi phục phiên bản mã nguồn

Một trong những tính năng quan trọng nhất của GitHub là khả năng quản lý phiên bản. Điều này cho phép bạn theo dõi mọi thay đổi trong dự án và quay lại các phiên bản trước đó nếu cần. GitHub dựa trên công nghệ Git, một hệ thống kiểm soát phiên bản (version control system), giúp lưu lại các thay đổi qua từng “commit” (lần lưu mã). Bạn có thể quay lại phiên bản trước đó nếu phát hiện lỗi, hoặc theo dõi ai đã thay đổi những gì và khi nào.

Mạng xã hội cho developers

Bên cạnh đó, GitHub được coi là một mạng xã hội dành cho lập trình viên lớn nhất và dễ dùng nhất với các tính năng cốt lõi như:

  • Wiki, issue, thống kê, đổi tên project, project được đặt vào namespace là user.
  • Watch project: theo dõi hoạt động của project của người khác. Xem quá trình người ta phát triển phầm mềm thế nào, project phát triển ra sao.
  • Follow user: theo dõi hoạt động của người khác.

Có 2 cách tiếp cận GitHub: Tạo project của riêng mình Contribute cho project có sẵn: fork project có sẵn của người khác, sửa đổi, sau đó đề nghị họ cập nhật sửa đổi của mình (tạo pull request).

Git và GitHub – sự khác biệt

Git và GitHub – sự khác biệt

GitHub được xây dựng trên công nghệ Git, nhưng hai khái niệm này không hoàn toàn giống nhau. Git là một hệ thống quản lý phiên bản mã nguồn mở, giúp theo dõi các thay đổi trong mã nguồn, và bạn có thể sử dụng Git mà không cần GitHub. GitHub là một nền tảng dựa trên Git, cung cấp giao diện web dễ sử dụng và nhiều tính năng bổ trợ như quản lý cộng tác, lưu trữ mã nguồn từ xa, và theo dõi lỗi. GitHub mở rộng khả năng của Git bằng cách hỗ trợ làm việc theo nhóm và cộng tác từ xa một cách hiệu quả

Một vài khái niệm của Git bạn cần nắm

  • git: là prefix của các lệnh được sử dụng dưới CLI
  • branch: được hiểu như là nhánh, thể hiện sự phân chia các version khi 2 version đó có sự sai khác nhất định và 2 version đều có sự khác nhau.
  • commit: là một điểm trên cây công việc (Work Tree ) hay gọi là cây phát triển công việc
  • clone: được gọi là nhân bản, hay thực hiện nhân bản. Sử dụng để clone các project, repository trên các hệ thống chạy trên cơ sở là git, ví dụ như: bitbucket, github, gitlab, cor(1 sản phẩm mã nguồn mở cho phép người dùng tự tạo git server cho riêng mình trên vps, server),… Việc clone này sẽ sao chép repository tại commit mình mong muốn, dùng để tiếp tục phát triển. Thao tác này sẽ tải toàn bộ mã nguồn, dữ liệu về máy tính của bạn.
  • folk: Folk là thao tác thực hiện sao chép repository của chủ sở hữu khác về git account của mình. sử dụng và đối xử như 1 repository do mình tạo ra.
  • repository: Kho quản lý dữ liệu, là nơi lưu trữ các dữ liệu, mã nguồn của project.
  • tag: sử dụng để đánh dấu một commit khi bạn có quá nhiều commit tới mức 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 git server, đố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ự sai 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ịch sử của GitHub

GitHub được viết bằng Ruby on Rails và Erlang do Tom Preston-Werner, Chris Wanstrath, và PJ Hyett phát triển trang web được đưa ra và chạy chính thức vào tháng 4 năm 2008.

Tính đến thời điểm tháng 3 năm 2018 Github đang là dịch vụ máy chủ lưu trữ các mã nguồn lập trình lớn nhất thế giới. Với hơn 25 triệu người dùng và hơn 80 triệu mã nguồn dự án, Github đã trở thành một phần không thể thiêu đối với cộng đồng phát triển mã nguồn mở và cộng đồng lập trình viên trên toàn thế giới.

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 repo, toàn bộ source code của repo đó được lưu trên GitHub. Tại đây, bạn có thể coi lại quá trình mình đã làm việc thông qua các comment sau mỗi lần commit. Và cái hay ở đây, là nhiều người có thể cùng làm một repo.

Lợi ích đầu tiên, chính là bạn biết được ai đã commit và commit cái gì. Tiếp theo, source của bạn có thể phát triển theo nhiều nhánh. Nguyên tắc làm việc với các nhánh như thế này: Bạn có thể rẽ nhiều nhánh để phát triển project. Nhưng cuối cùng, bạn phải merge lại vào nhánh MASTER để ra được project hoàn chỉnh.

Tham khảo việc làm GIT lương cao tại TopDev

Tracking sự thay đổi qua các version

Khi có nhiều member cùng thực hiện một dự án thì khá là phức tạp để theo dõi revisons – ai thay đổi cái gì, lúc nào và mấy cái files đó được stored ở đâu. Đừng lo vì GitHub đã tính đến chuyện này giúp bạn, bằng cách luôn lưu lại những thay đổi bạn đã push lên repository. Cũng tương tự với Microsoft Word hay Google Drive, bạn có một lịch sử phiên bản để phòng trường hợp các phiên bản trước đó bị mất hay không được lưu.

Markdown

Markdown là một cách định dạng text trên web. Bạn có thể chỉnh sửa cách hiển thị của document, format từ như định dạng in đậm hay in nghiêng, thêm hình và tạo list những thứ bạn có thể làm với Markdown. Hầu hết, Markdown chỉ là đoạn text đơn thuần với những ký tự đặc biệt chèn vào, như # hay *. Trong GitHub thì bạn có thể sử dụng Mardown ở những nơi: Git, Comments tại Issues và Pull Requests, các file có đuôi .md hay .markdown extension.

Xem thêm huớng dẫn của Markdown

Github giúp chứng tỏ bạn là ai

Chẳng thể phủ nhận những lời hay ý đẹp bạn viết trong CV là cần thiết. Nhưng Source code luôn là minh chứng tốt nhất để thể hiện bạn là developer thực thụ. Có thể nói, 1 phần GitHub “nho nhỏ” trong CV có thể đánh bóng vị trí của bạn, nổi bật hơn những ứng cử viên khác. Đối với nhà tuyển dụng, GitHub cũng giống như một chiếc máy liar-detech – phân biệt real developer với những kẻ “faker”.

Hãy đầu tư cho mình một tài khoản Github thật ấn tượng và đưa đường dẫn vào trong CV, chẳng nhà tuyển dụng nào lại dại dột mà bỏ qua bạn đâu.

Có rất nhiều công ty lớn trên thế giới xem đây là một yêu cầu trong quy trình tuyển dụng của họ. Nếu bạn có nhiều đóng góp cho cộng đồng hoặc có nhiều sản phẩm trên Github, sẽ là một lợi thế rất lớn so với các ứng viên khác. Vì bằng cách đăng tải các project của mình lên đây, bạn đã tạo cho mình một profile cá nhân vô cùng đáng tin cậy.

Vì khi nhìn vào đó, nhà tuyển dụng sẽ biết được ngay thế mạnh của bạn là gì, và khả năng coding của bạn thế nào.

Github giúp cải thiện kỹ năng code, thậm chí là tracking bug

Có hàng ngàn hàng vạn cách để học, học trên Github sẽ là một ý kiến không tồi trong thời đại này. Với hàng vạn open source projects, hàng trăm ngàn contributors, hàng tỉ commit mỗi ngày thì chỉ bằng việc xem. So sánh, học tập từ những thay đổi đó đã đem lại cho bạn hàng tá điều hay để cải thiện kỹ năng code của bản thân mình.

“Bug tracking” là một tính năng được GitHub tích hợp vào để đơn giản hóa quá trình “tìm và diệt bọ”. Để hiểu được quy trình thì những gì bạn cần làm là mở dashboard của từng project lên và filter các thông tin. Sau đó, các câu hỏi sẽ được hệ thống, sắp xếp theo mức độ phổ biến, thời gian update hay tương tại. Phần mềm này cũng có giao diện khá mượt nên luôn được xếp hạng cao trong cộng đồng IT dev.

Github là một kho tài nguyên tuyệt vời

Với chức năng Explore, bạn có thể theo dõi, tìm kiếm những open source projects theo đúng technology pattern mà bạn ưa thích. Github hỗ trợ code search không kể nó ở dưới dạng một project riêng biệt hay là website. Ngoài ra, 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ỳ code string nào được chia sẻ public.

Github Action

Trên server của Github có những workflow scripts chạy tự động. Dev có thể dùng chúng để phản hồi các events trên repositories hoặc thực hiện vài action. Ví dụ như tôi có viết một cái tiện ích nho nhỏ, Autotagger – GitHub Marketplace, sẽ tự động tạo git tafs khi mà số phiên bản của package.json thay đổi. Nhìn thì đây chỉ là hành động nhỏ nhưng sẽ có tác động rất lớn khi phải truy tìm code ngược về bản phát hành, và bớt đi một cơn “nhức đầu” cho các project maintainers đó chứ.

GitHub là gì? Những lợi ích GitHub mang lại cho lập trình viên

Github Package Registry

Cái package registry này cho phép lập trình viên duy trì distribution registries của họ, bao gồm npm, docker, maven, nuget và Ruby gems.

GitHub là gì? Những lợi ích GitHub mang lại cho lập trình viên

Đừng ngần ngại mà không tạo ngay cho mình một tài khoản Github. Tạo những project của riêng mình và chia sẻ với mọi người, hoặc bạn có thể thoải mái fork một project của một open source nào đó. Tạo pull request hoặc issues nếu như tìm được lỗi, cần support.

Mở rộng mối quan hệ

  • Gặp gỡ những dev mới: Vài ngàn developer toàn cầu đang tham gia mạng lưới rộng lớn của GitHub để chia sẻ kinh nghiệm của họ cũng như những ý tưởng rất đỉnh.
  • Chia sẻ kinh nghiệm bản thân: Git cho phép user share code, text fragments hay bất kỳ thông tin nào với các dev khác. Do đó bạn có thể dùng nó để trao đổi text, hay gists work như git repositories, từ đó tách ra và update các phiên bản đó.

Bắt đầu sử dụng GitHub

Dưới đây là các bước cơ bản để bắt đầu sử dụng GitHub:

  • Bước 1: Tạo tài khoản GitHub Truy cập GitHub và đăng ký tài khoản miễn phí.
  • Bước 2: Tạo một kho lưu trữ (Repository) mới Kho lưu trữ là nơi bạn lưu trữ mã nguồn và các tệp liên quan đến dự án của mình. Để tạo kho lưu trữ mới:
    • Nhấp vào biểu tượng dấu cộng (+) ở góc trên bên phải và chọn “New repository”.
    • Điền thông tin cần thiết như tên, mô tả và thiết lập quyền riêng tư (công khai hoặc riêng tư).

Bắt đầu sử dụng GitHub

    • Bước 3: Bạn cần cài đặt Git trên máy tính để có thể tương tác với GitHub từ dòng lệnh. Tải Git từ Git downloads và cài đặt
  • Bước 4: Kết nối Git với GitHub Mở terminal hoặc command prompt và cấu hình Git với thông tin tài khoản GitHub của bạn:
git config --global user.name "Your GitHub Username" git config --global user.email "Your GitHub Email"
  • Bước 5: Khởi tạo kho lưu trữ Git trên máy tính của bạn Điều hướng đến thư mục dự án của bạn và khởi tạo kho lưu trữ Git bằng cách chạy
git init
  • Bước 6: Thêm mã nguồn vào kho lưu trữ Thêm các tệp của bạn vào kho lưu trữ bằng cách chạy:
git add .
  • Bước 7: Commit mã nguồn của bạn Tạo một commit để lưu trạng thái mã nguồn của bạn:
git commit -m "First commit"
  • Bước 8: Kết nối kho lưu trữ cục bộ với GitHub Kết nối kho lưu trữ trên máy tính với kho lưu trữ GitHub của bạn:
git remote add origin https://github.com/username/repository-name.git git push -u origin master
  • Bước 9: Sử dụng GitHub Desktop (Tùy chọn) Nếu bạn không thích làm việc với dòng lệnh, GitHub Desktop là một ứng dụng giao diện người dùng dễ sử dụng. Tải và cài đặt GitHub Desktop từ GitHub Desktop.
  • Bước 10: Tạo và quản lý các nhánh (Branches) Nhánh giúp bạn làm việc trên các tính năng hoặc bản sửa lỗi mới mà không ảnh hưởng đến mã nguồn chính. Để tạo một nhánh mới:
git checkout -b feature-branch
  • Bước 11: Push các thay đổi lên GitHub Sau khi hoàn thành các thay đổi, push lên kho lưu trữ GitHub:
git push origin feature-branch

Qua bài viết của TopDev, hi vọng đã giúp bạn hiểu hơn về GitHub và các tính năng cũng như cách sử dụng GitHub. Chúc bạn có một khởi đầu suôn sẻ với GitHub!

Bài viết liên quan:

Xem ngay tin đăng tuyển lập trình viên đãi ngộ tốt trên TopDev