18/5/16

Bài 1: Git và Github là ? Tại sao chúng ta nên dùng nó ?

Chào tất cả các bạn , hôm nay mình sẽ chia sẻ về series học các sử dụng Git cơ bản. Đầu tiên, bạn nghĩ Git là gì khi lần đầu tiên nghe ai nói về nó ? Bạn nghĩ nó là ngôn ngữ lập trình hay kỹ thuật gì để phát triển website ?
Tại sao các lập trình viên lại thường sử dụng nó? Để giải đáp cho thắc mắc của bạn thì hãy cùng mình tìm hiểu bài hôm nay nha. Trước khi tìm hiểu về Git, mình có một câu chuyện ngắn muốn kể cho các bạn nghe.
Nhóm của bạn cùng nhau phát triển một sản phẩm cho khách hàng. Chức năng sẽ được chia đều cho các thành viên trong nhóm cùng nhau code và gửi qua mail cho nhau khi có chức năng nào hoàn thành. Các thành viên trong nhóm sẽ nhận code và ráp lại code trên local của máy mình và sao cho code ở các thành viên trong nhóm chạy không bị lỗi. Tuy nhiên, một ngày đẹp trời một thành viên trong nhóm vô tình viết code bị lỗi và gửi mail cho các thành viên trong nhóm và ráp lại code với nhau dẫn tới sản phẩm bị lỗi mà trước đó thì các thành viên trong nhóm không sao lưu lại code do hệ thống quá lớn. Và cũng có thể một ai đó trong nhóm code bị lỗi nhưng vẫn không biết và gửi cho các thành viên còn lại.
Thế bạn có nhận thấy điều gì xảy ra ở câu chuyện trên hay không? Mình thấy có 2 vấn đề:
1. Việc tự code riêng và gửi qua mail cho nhau sẽ mất thời gian. Giá mà các thành viên trong nhóm của thể xem được code của nhau trước khi ráp vào sản phẩm.
2. Việc code trong cùng một nhóm mà không sao lưu lại trước đó là một điều nguy hiểm và tồi tệ nếu làm cho sản phẩm của nhóm bị lỗi.
Vậy giải pháp cho việc làm theo nhóm là gì? Đó là sử dụng Git nó sẽ giải quyết cho việc sao lưu code và xem code trước khi ráp vào sản phẩm. Công dụng của Git còn nhiều hơn thế nữa nào cùng nhau tìm hiểu thôi.
1. Git là gì ? 
Git còn được gọi là Hệ thống quản lý phiên bản phân tán(Distributed Version Control System – DVCS) là một trong những hệ thống quản lý phiên bản phân tán phổ biến nhất hiện nay. DVCS nghĩa là hệ thống giúp mỗi máy tính có thể lưu trữ nhiều phiên bản khác nhau của một mã nguồn được nhân bản (clone) từ một kho chứa mã nguồn (repository), mỗi thay đổi vào mã nguồn trên máy tính sẽ có thể ủy thác (commit) rồi đưa lên máy chủ nơi đặt kho chứa chính. Và một máy tính khác (nếu họ có quyền truy cập) cũng có thể clone lại mã nguồn từ kho chứa hoặc clone lại một tập hợp các thay đổi mới nhất trên máy tính kia. Trong Git, thư mục làm việc trên máy tính gọi là Working Tree.
Ngoài ra, có một cách hiểu khác về Git đơn giản hơn đó là nó giúp bạn lưu lại các phiên bản của những lần thay đổi vào mã nguồn và có thể dễ dàng khôi phục lại dễ dàng mà không cần copy lại mã nguồn rồi cất vào đâu đó. Và một người khác có thể xem các thay đổi của bạn ở từng phiên bản khác nhau, họ cũng có thể đối chiếu các thay đổi của bạn rồi gộp phiên bản của bạn vào phiên bản của họ. Cuối cùng là tất cả có thể đưa các thay đổi vào mã nguồn của mình lên một kho chứa mã nguồn.
Cơ chế lưu trữ phiên bản của Git là nó sẽ tạo ra một “ảnh chụp” (snapshot) trên mỗi tập tin và thư mục sau khi commit, từ đó nó có thể cho phép bạn tái sử dụng lại một ảnh chụp nào đó mà bạn có thể hiểu đó là một phiên bản. Đây cũng chính là lợi thế của Git so với các DVCS khác khi nó không “lưu cứng” dữ liệu mà sẽ lưu với dạng snapshot.
2. GitHub là gì ?
GitHub là dịch vụ của Respositoty
Mình biết là có rất nhiều bạn khi nghe nói đến Git sẽ nghĩ ngay đến Github và có thể sẽ có một số hiểu lầm với họ. Cũng xin nhắc lại rằng, Git là tên gọi của một mô hình hệ thống. Như mình đã giải thích ở trên, các máy tính 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.
Mặc dù Git có thể làm việc với bất kỳ trên máy chủ Linux nào nhưng để dễ hiểu và thực tế hơn, mình sẽ hướng dẫn các bạn sử dụng Git với Github trong suốt serie này.
3. Tại sao nên sử dụng Git?
Có rất nhiều lợi thế để bạn nên sử dụng Git trong việc lập trình ngay từ hôm nay, bất kể là lập trình cái gì đi chăng nữa.
Git dễ sử dụng, an toàn và nhanh chóng.
Có thể 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).
Bạn có thể làm việc ở bất cứ đâu vì chỉ cần clone mã nguồn từ kho chứa hoặc clone một phiên bản thay đổi nào đó từ kho chứa, hoặc một nhánh nào đó từ kho chứa.
Dễ dàng trong việc deployment sản phẩm.
Và nhiều hơn thế nữa.
Nếu 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ờ.
Và bắt đầu sử dụng Git thế nào thì ở bài sau chúng ta sẽ tìm hiểu tới.

0 nhận xét: