Cho dù bạn đang muốn tự mình thành lập một nhóm phát triển dự án của riêng mình hay muốn xin việc vào một công ty công nghệ, quản lý phiên bản (version control) của phần mềm là điều kiện tiên quyết bạn phải thành thạo. Có lẽ hiện nay, không có công ty nào, dù là startup mới khởi nghiệp cho đến những tập đoàn lớn lại không sử dụng version control.
Git và Github là 2 công cụ version control phổ biến nhất thế giới. Nó không những vừa giúp bạn kiểm soát tốt dự án và công việc của mình mà còn giúp team bạn có thể tăng tốc độ hoàn thành tiến độ, tránh những xung đột không đáng có về code trong quá trình phát triển.
Đại học thường không dạy bạn cách sử dụng những công cụ này nên đa số bạn những sinh viên phải đến khi đi thực tập mới bắt đầu biết đến Git và Github. Thay vì đợi chờ, hãy bắt tay tìm hiểu ngay: Git và Github là gì?
Git là gì?

Git là công cụ quản lý phiên bản (version control) do Linus Torvalds tạo ra vào năm 2005, có khả năng chạy trên nhiều hệ điều hành như Window, Linux... Với mỗi project, Git tạo ra một kho chứa gọi là Repository để lưu trữ từng phiên bản của project mỗi khi developer thay đổi hoặc thêm vào các tính năng cho project. Developer sử dụng Git thông qua các command line trên shell (cmd trong window hay terminal trong linux).

Tại sao lại phải quản lý phiên bản? Ví dụ, có lúc bạn đang làm một tính năng mới trong project, đột nhiên bạn nhớ ra trước đấy đã từng code những dòng này rồi nhưng vì một lý do nào đó ở thời điểm ấy mà bạn phải xóa đi. Lúc này, nhờ có Git mà tra lại lịch sử các phiên bản thì công việc sẽ đơn giản hơn rất nhiều. Hay giả sử có cùng 1 file mà team bạn có đến 2 người cùng sửa ở 2 thời điểm khác nhau. Khi đến quá trình review code hoặc testing, quản lý phiên bản giúp cho team hiểu rõ được mục đích của từng coder để dễ dàng đưa ra các giải pháp hợp lý.
Git cũng hỗ trợ rất tốt trong việc phân nhánh (branching) công việc. Ví dụ bạn đang muốn viết và test một tính năng mới cho project nhưng lại sợ sẽ ảnh hưởng đến phiên bản chính của project. Lúc này, Git hỗ trợ cho bạn "phân nhánh" sang một nhánh khác, đến khi bạn viết và test xong có thể merge vào nhánh của phiên bản chính một cách dễ dàng.
Github là gì?

Nếu Git là phần mềm quản lý phiên bản trên một máy tính cục bộ (local) thì Github là một server quản lý phiên bản của nhiều Repositories. Coders có thể sử dụng các server có chức năng tương tự Github như BitBucket... Tuy nhiên Github vẫn là server quản lý phiên bản được sử dụng phổ biến nhất thế giới. Vậy tại sao phải sử dụng Github?
Như ở trên, Git chỉ cho phép bạn kiểm soát phiên bản của những gì thay đổi trong project trên máy tính của bạn. Vậy làm thế nào để "kết nối" công việc trên project của 2 người hoặc nhiều hơn trong team? Github chính là công cụ giải quyết vấn đề đó. Khi developer A code xong 1 tính năng mới, A "push" code lên Github. Developer B sẽ cập nhât hiện trạng thực của project bằng cách "pull" code của A từ Github về. Tương tự B cũng "push" code lên Github để cập nhật và A có thể "pull" code về. Đó là tiến trình cơ bản của Github giúp team quản lý được project khi công việc được chia cho nhiều thành viên.
Nếu Git cho phép phân nhánh (branching) các tính năng trong 1 local repos thì Github cho phép phân nhánh các thành viên trong 1 team. Mỗi người là một branch chịu trách nhiệm cho những nhiệm vụ khác trong trong project. Khi 1 phiên bản đi đến giai đoạn testing hoặc release, các nhánh chứa công việc của các coders sẽ được merge vào branch chính (testing hoặc master).


Vì là server quản lý phiên bản được sử dụng nhiều nhất thế giới nên Github cũng là kho chứa mã nguồn mở (open source) nhiều nhất thế giới. Sử dụng Github còn đem lại cho các coder, nhất là các startup cơ hội kế thừa sức mạnh mã nguồn mở đã được viết bởi hàng trăm, hàng nghìn developers từ khắp nơi trên thế giới, giúp cho startup có thể "đi tắt đón đầu" công nghệ, nhanh chóng hoàn thành sản phẩm ra thị trường. Giữa thời kì bùng nổ công nghệ kỷ nguyên 4.0, sử dụng Github cũng như các trang chứa mã nguồn mở đã trở thành điều tất yếu không thể thiếu của các startup ở khắp nơi trên thế giới.
Bài viết mở đầu cho series bài hướng dẫn về Git cơ bản
Trích từ Git và Github