Git hub là gì

Khi bạn tham gia một dự án nào đấy thì việc phải làm việc với nhiều người là điều thường thấy. Kể cả làm việc một mình thì việc quản lý source code là vô cùng quan trọng.

Theo như mình biết thì có 2 mô hình quản lý source code: Quản lý tập trung [SVN], Quản lý phân tán [git]. Mỗi hình thức đều có ưu và nhược điểm riêng.

Bài viết này, mình sẽ hướng dẫn các bạn cách sử dụng Github để quản lý source code, một dịch vụ git rất nổi tiếng của Microsoft.

#Github là gì?

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.

Vài thông tin về GIT:

  • Là công cụ giúp quản lý source code tổ chức theo dạng dữ liệu phân tán.
  • Giúp đồng bộ source code của team lên 1 server.
  • Hỗ trợ các thao tác kiểm tra source code trong quá trình làm việc [diff, check modifications, show history, merge source, …]

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à netword graph để các develop 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 – Nền tảng lưu trữ Git source lớn nhất

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.

#Tại sao nên sử dụng Github

Mặc dù Github có nhiều lợi ích như vậy. Nhưng sẽ có nhiều bạn thắc mắc: Tại sao không sử dụng Dropbox hay các dịch vụ tương tự để quản lý source code? Các dịch vụ đó cũng cho phép đồng bộ source code của các bạn trong team về một server mà?

Tại sao nên sử dụng Github?

Để trả lời cho câu hỏi này, mình sẽ lấy một ví dụ: Giả sử dự án của bạn có 2 developer cùng sửa một file, sau đó commit đồng thời lên server. Với Dropbox thì người commit lên trước sẽ được ưu tiên sửa file.

Nhưng với Github, việc commit đồng thời không phải là vấn đề nghiêm trọng. Vì Git sẽ ghi lại lịch sử commit, đảm bảo các commit được tổ chức tốt, tránh sự hỗn loạn giữa các version của file sửa đổi được gửi lên server.

Do đó, việc sử dụng Github sẽ tránh được tất cả sự nhầm lẫn khi commit. Đảm bảo cùng làm việc trên một source code trở lên dễ dàng hơn rất nhiều.

#Cách tạo một GitHub Repository

Repository là một không gian để lưu trữ dự án của bạn. Do tính chất phân tán của Git, nên có thể hiểu repository là nơi lưu trữ mã nguồn ở cả local và server.

Bạn có thể lưu trữ file code, text, hình ảnh hoặc bất kỳ loại tệp nào trong repository.

Để tạo một repository trên Github bạn làm như sau:

  • Vào Github, đăng ký một tài khoản bằng cách click vào “Sign up for Github”.
  • Sau khi đăng ký và kích hoạt thành công. Bạn bắt đầu tạo mới một project với “Start a new project”.

Bạn có thể xem hình bên dưới cho rõ thêm nhé:

Tạo mới Repository trên Github

  • Nhập tên Repositoty và nhấn nút “Create Repository”. Ngoài ra, bạn cũng có thể thêm mô tả cho repo [ Cái này chỉ là lựa chọn, không bắt buộc phải có].

Cách tạo một repository

Trong đó, bạn lưu ý 2 options sau:

  • Theo mặc định thì repository để là public. Tức là ai cũng có thể xem được repo này của bạn. Nếu dự án của bạn chưa muốn công khai mà chỉ muốn quản lý nội bộ thì chọn Private.
  • Bạn có thêm một README file để giới thiệu repo kèm với một file .gitignore. Github đã có sẵn template .gitignore cho bạn, cứ chọn một template phù hợp với mã nguồn dự án là được.

Khi tạo xong, repo sẽ như sau:

Thông tin một repository

Khi đã có repository, bạn có thể clone, pull, push… source code của mình lên đó rồi.

Phần tiếp theo của bài viết, chúng ta sẽ tìm hiểu vể branch trên Github.

#Tạo branch trên Github

Branch giúp bạn làm việc trên các phiên bản khác nhau của cùng một repository. Mình lấy ví dụ: Bạn muốn phát triển thêm một tính năng mới cho dự án. Nhưng bạn lại phần sửa đổi đó lại ảnh hưởng tới dự án chính. Lúc này branch ra đời.

Branch cho phép bạn chuyển đổi qua lại giữa các trạng thái và phiên bản khác nhau của dự án.

Với kịch bản ví dụ ở trên, bạn có thể tạo mới một branch và phát triển tính năng mới trên đó mà không ảnh hưởng tới master branch. Sau khi đã implement xong, test kỹ càng thì có thể merge vào master branch.

Quản lý branch trong git

Để tạo một branch trên Github, bạn làm như sau:

  • Click vào dropdown branch: Branch: master
  • Khi danh sách branch xổ ra, bạn có thể tạo thêm một branch mới tại đây

Tạo mới branch Github

#Sử dụng Github như thế nào?

Github có đầy đủ những command của git. Nhưng do bài viết này quá dài nên mình sẽ không liệt kê hết tất cả chúng ở đây. Mình sẽ tập trung hướng dẫn những command cơ bản nhất, hay dùng trên Github.

1. Commit Command

Commit command cho phép bạn lưu lại những thay đổi của file. Khi bạn commit, nên viết mô tả rõ ràng trong commit message. Điều này sẽ giúp cho quản lý dự án tốt hơn, có thể theo dõi, review những thay đổi source code sau này.

Để tạo commit, bạn làm như sau:

  • Chọn file muốn sửa
  • Chọn “Edit” để sửa file.
  • Sau khi sửa xong thì điền thông tin message và nhấn Commit.

Sử dụng commit command

2. Pull Command

Lệnh PULL request là lệnh quan trọng nhất trên Github. Nó cho biết những thay đổi trong source code, và yêu cầu owner của source code xem xét nó và merge nó vào master branch.

Một khi commit xong, bất kể ai cũng có thể update sự thay đổi và thảo luận về sự thay đổi đó.

Tính năng này rất hay cho các dự án mã nguồn mở. Khi mà bất kì cũng có thể đóng góp công sức cho dự án. Tất nhiên, mọi sự thay đổi đều phải được sự đồng ý của owner dự án.

Ở đây, mình cần làm rõ hơn với các bạn đỡ nhầm lẫn về lệnh Pull:

  • Lệnh pull request : Là lệnh yêu cầu chủ owner dự án xem xét một thay đổi nào đó trước khi merge vào master branch.
  • Lệnh Pull: đây là lệnh của git, đơn thuần có thể hiểu là lệnh update source code từ server về local. Nếu có bất kì sự xung đột code nào [conflict] thì bạn cần phải resolve nó.

Tạo pull request trên Github

3. Merge command

Lệnh cơ bản cuối cùng mà mình muốn nhắc đến là merge. Lệnh merge này cho phép bạn hợp nhất những thay đổi vào một branch.

  • Click vào “Merge pull request” để hợp nhất những thay đổi vào master branch.
  • Click vào “Confirm merge”.

Bạn có thể tham khảo hình bên dưới:

Cách Merge branch

#Cloning dự án từ Github

Đây có lẽ là thao tác bạn hay dùng nhất khi tìm kiếm mã nguồn mở trên mạng. Khi bạn thấy một dự án nào đó hay ho và có thể ứng dụng được cho dự án của mình, bạn muốn download dự án này về máy tính để tham khảo.

Có 2 cách để tải dự án từ Github:

  • Một là bạn chọn Zip toàn bộ dự án và tải về

Cách download dự án từ Github

  • Hai là bạn có thể clone dự án về bằng lệnh git. Bạn cũng click vào “Clone or Download”. Sau đó copy đường dẫn và gõ trong cửa sổ terminal trên máy tính như sau
  • Những lệnh Git cơ bản
  • Phần mềm quản lý Git tốt nhất: Source Tree, Gitkraken

Là một lập trình viên, việc phải làm việc với nhiều người[làm việc nhóm] là điều thường thấy. Kể cả làm việc một mình thì quản lý source code là rất quan trọng. Git sẽ giúp bạn quản lý code của bạn tốt hơn. Trong bài viết này mình sẽ nói về GIThub là gì và những công dụng của nó mà lập trình viên cần biết.

Github[git] là gì?

GitHub là một dịch vụ nổi tiếng lưu trữ mã nguồn trên web cho các dự án phát triển phần mềm. GitHub cung cấp cho người dùng cả phiên bản trả tiền lẫn miễn phí cho các tài khoản. Tính đến tháng 4 năm 2016, GitHub có hơn 14 triệu người sử dụng với hơn 35 triệu kho mã nguồn. Làm cho nó trở thành máy chủ chứa mã nguồn lớn trên thế giới. Nó được tạo bởi Linus Torvalds vào năm 2005. GitHub được viết bằng Ruby on Rails và Erlang.

Hiện nay, github đã trở thành một yếu tố có sức ảnh hưởng trong cộng đồng phát triển mã nguồn mở. Đã có nhiều nhà phát triển đã bắt đầu xem đây là một sự thay thế cho sơ yếu lý lịch và một số nhà tuyển dụng yêu cầu các ứng viên cung cấp một liên kết đến tài khoản Github để họ có thể đánh giá ứng viên.

Xem thêm: Chặng đường sự nghiệp của lập trình viên

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

Nếu comment dùng để mô tả chức năng của đoạn code, thì commit message trên Git dùng để mô tả hành động mà bạn vừa thực hiện trên code.

Một vài thông tin về GIT:

  • Là công cụ giúp quản lý source code tổ chức theo dạng dữ liệu phân tán.
  • Giúp đồng bộ source code của team lên 1 server.
  • Hỗ trợ các thao tác kiểm tra source code trong quá trình làm việc [diff, check modifications, show history, merge source, …]

Xem thêm: Mô hình client- server là gì? Những điều cần biết về mô hình này

Những tính năng của Github

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

  • 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 những người khác.
git căn bản

Có 2 cách tiếp cận GitHub:

  • Tạo project của riêng mình
  • Cống hiến 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]

Tính năng API của GitHub là gì?

GIT có nhiều chức năng rất tuyệt vời. Ngoài ra, nó 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 mục đích quản lý nguồn dữ liệu dễ dàng và khoa học hơn. Dưới đây là một số tính năng cơ bản của API trong git:

  • API lớn cải tiến The Repository via HTTP. Cho phép người dùng thực hiện chỉnh sửa các file source code thông qua http-post.
  • API hỗ trợ hỗ trợ người dùng đánh giá và so sánh code của dự án thông qua công việc nhìn thấy các commit. Và 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 lưu trữ của bạn. Bất cứ khi nào có người push source code của họ lên repository, GitHub thông báo cho bạn biết bằng cách post thông tin về lần push đó khi đến URL mà bạn đang đăng ký trước đó.

Cách hoạt động của Github là gì

Nếu chúng ta muốn bắt đầu sử dụng Git, chúng ta cần biết nơi lưu trữ các repository của mình.

Một kho lưu trữ [hay gọi tắt là Repo] là một dự án chứa nhiều tệp. Trong trường hợp của chúng ta, một kho lưu trữ sẽ chứa các tệp dựa trên code.

Có hai cách bạn có thể lưu trữ kho của bạn. Một là trực tuyến [trên đám mây] và thứ hai là ngoại tuyến [tự cài đặt trên máy chủ của bạn].

Có ba dịch vụ lưu trữ trên Git phổ biến đó là: GitHub [thuộc sở hữu của Microsoft], GitLab [thuộc sở hữu của GitLab] và BitBucket. Chúng ta sẽ sử dụng GitHub trong bài này.

cách git hoạt động

Tại sao bạn nên sử dụng Git?

Việc sử dụng Git Có rất nhiều lợi thế cho bạn trong việc lập trình của bạn, bất kể là lập trình cái gì đi chăng nữa thì việc sử dụng git là rất cần thiết. bạn là một lập trình viên thì Git là một hệ thống bạn cần phải biết cách sử dụng, ít nhất là ngay từ bây giờ.

Lợi ích git với lập trình viên

  • Có thể sẽ giúp quy trình làm việc code theo nhóm đơn giản hơn rất nhiều bằng việc kết hợp các phân nhánh [branch].
  • Git dễ sử dụng, có độ bảo mật an toàn thông tin cao và nhanh chóng.
  • Bạn có thể làm việc ở bất cứ đâu vì chỉ cần clone mã nguồn từ trên git.
  • Dễ dàng trong việc deployment sản phẩm.
  • Bạn sẽ không còn lo ngại thay đổi làm mất mã nguồn từ kho chứa bởi hệ thống có thể khôi phục hoàn toàn các phiên bản cũ khi cần.
  • Dễ dàng theo dõi các thay đổi trong code của bạn qua các phiên bản.
  • GitHub tạo 1 môi trường khuyến khích giúp cải thiện coding skill bằng cách theo dõi và so sánh những thay đổi thường xuyên.
  • Quản lý source code dễ dàng: 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.
  • Github là một kho tài nguyên tuyệt vời: 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.

Một vài khái niệm của Github là gì mà bạn cần nắm

Ở Github nó có khá nhiều những khái niệm quan trọng. Bên dưới đây là một số những khái niệm cơ bản mà bắt buộc người dùng cần phải nắm để có thể sử dụng Github một cách hiệu quả nhất:

  • branch: có thể 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 nhằm mục đích để clone các project, repository trên các hệ thống chạy trên cơ sở là git. 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.
  • repository: Kho quản lý dữ liệu, 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ự những khác nhau giữa phiên bản hiện tại với phiên bản muốn so sánh.
  • .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.
  • git: Là prefix của các lệnh được sử dụng dưới CLI.
một số lệnh cơ bản trong git

Hướng dẫn sử dụng Github

Mình xin hướng dẫn một số thao tác cơ bản trên Github.

Cách tạo một GitHub Repository

Khái niệm Repository là một không gian giúp lưu trữ dự án của bạn. Do tính chất phân tán của Git, nên chúng ta có thể hiểu repository là nơi để lưu trữ mã nguồn ở cả local và server.

Trên Repository bạn có thể lưu trữ file code, gif, text, hình ảnh hoặc bất kỳ loại tệp nào trong repository.

Để tạo mới một repository ở trên Github bạn làm như sau:

  • Vào web Github, thực hiện đăng ký một tài khoản bằng cách click vào “Sign up for Github”.
  • Sau khi đăng ký và kích hoạt thành công tài khoản của bạn. Bạn bắt đầu tạo mới một project với button “Start a new project”.
  • Nhập tên Repositoty bạn muốn tạo và nhấn nút “Create Repository”. Nhiều hơn nữa, bạn cũng có thể thêm mô tả cho repository – nếu bạn thấy cần thiết.
Cách tạo một GitHub Repository

Bạn cần lưu ý tới 2 lựa chọn sau:

  • Để mặc định thì repository để là public. Có nghĩa là ai cũng có thể xem được repo này của bạn. Nếu như dự án của bạn chưa muốn công khai, bạn chỉ muốn quản lý dự án trong nội bộ thì bạn chọn Private.
  • Có thể thêm một README file để giới thiệu dự án của bạn kèm với một file .gitignore. Ở github đã có sẵn template .gitignore cho bạn sử dụng, hãy chọn một template phù hợp với mã nguồn dự án của bạn là được.

Khi bạn tạo xong, repository sẽ như sau:

repository tạo xong trên git

Khi đã tạo thành công repository, bạn có thể clone, pull, push… dự án của mình lên đó rồi.

Cách tạo branch trên Github

Branch[nhánh] giúp bạn có thể làm việc trên những phiên bản khác nhau của cùng một repository. Ví dụ như: Khi bạn muốn phát triển cho dự án một tính năng mới. Nhưng bạn lại lo rằng phần sửa đổi đó sẽ lại ảnh hưởng tới dự án chính. Khi đó branch ra đời.

Branch cho phép bạn thực hiện chuyển đổi qua lại giữa các trạng thái và các phiên bản khác nhau của dự án.

Bạn có thể tạo mới một branch mới và phát triển tính năng mới ở trên đó mà không làm ảnh hưởng tới master branch. Sau khi bạn đã implement xong, test lại kỹ càng thì bạn có thể merge vào master branch.

Quản lý branch trong git là gì

Để có thể tạo một branch ở trên Github, bạn làm như sau:

  • Chọn click vào dropdown branch: Branch: master
  • Khi danh sách branch hiện ra, bạn có thể tạo thêm một branch mới ở đây.
tạo branch trên Github

Hướng dẫn sử dụng Github chi tiết

Những command cơ bản nhất, hay dùng nhất trên Github.

1. Commit Command

Commit command trên git cho phép bạn lưu lại những thay đổi của file. Vì vậy, khi bạn commit, bạn nên viết mô tả rõ ràng trong commit message. Vì nó sẽ giúp cho quản lý dự án tốt hơn, dễ thể theo dõi, review những thay đổi source code sau này.
Để tạo 1 commit, bạn làm như sau:

  • Chọn file muốn sửa.
  • Chọn “Edit” để sửa file.
  • Sau khi sửa xong thì điền thông tin message và nhấn Commit.
Commit Command github

2. Pull Command trên git

Lệnh pull request nó cho biết những thay đổi trong source code, và nó là yêu cầu owner của source code xem xét nó và merge nó vào master branch.

Một khi commit lên git, bất kể ai cũng có thể update sự thay đổi và thảo luận về nó.

Tính năng ở git này khá hay cho các dự án mã nguồn mở. Khi mà ai cũng có thể đóng góp công sức cho dự án. Đương nhiên, sự thay đổi phải được sự đồng ý của owner dự án.

Làm rõ về pull request và Pull:

  • Lệnh pull request: Là lệnh để yêu cầu chủ owner dự án xem xét một thay đổi nào đó trước khi merge vào master branch.
  • Lệnh Pull: Là lệnh update source code từ server về local. Nếu như có bất kì sự xung đột code nào [conflict] thì bạn cần phải resolve nó.
Tạo pull request trên Github
tạo pull request git

3. Merge command

Lệnh merge này cho phép bạn hợp nhất những thay đổi vào một branch.

  • Click vào “Merge pull request” để hợp nhất những thay đổi từ branch vào master branch.
  • Click vào “Confirm merge”.
Merge command trên git

Cloning dự án từ Github

Thao tác này các bạn có lẽ hay dùng nhất khi tìm kiếm mã nguồn mở trên mạng. Bạn thấy một dự án nào đó hay ho và có thể ứng dụng được cho dự án của mình, bạn muốn clone dự án này về máy tính để tham khảo, nghiên cứu nghĩ hơn.

clone code trên github

Có 2 cách để tải dự án từ Github:

  • Một là bạn chọn Zip toàn bộ dự án và tải về.

Cách download dự án từ Github

  • Bạn cũng có thể clone dự án về bằng lệnh git. Bạn cũng click vào “Clone or Download”. Sau đó copy đường dẫn và gõ trong cửa sổ terminal trên máy tính như sau:
  • git clone :vntalking/demo-create-repro.git

Tham khảo:

//vi.wikipedia.org/wiki/Git

Tổng kết

Việc sử dụng GIT là rất cần thiết đối với lập trình viên. Giúp cải thiện nhiều kĩ năng trong làm việc nhóm và phát triển bản thân. Bài viết là những chia sẻ của mình về git là gì và cách sử dụng git, những lệnh cơ bản trên git.

Có thể bạn quan tâm:

  • Devops là gì? Devops engineer là gì? Bắt đầu học devops như thế nào

Video liên quan

Chủ Đề