post-image

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

Git

Git là gì?

Là một hệ thống quản lý phiên bản phân tán (Distributed Version Control System – DVCS), nó 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. Git cung cấp cho mỗi lập trình viên kho lưu trữ (repository) riêng chứa toàn bộ lịch sử thay đổi.

Khái niệm Git là gì?
Git là gì?

Version Control System – VCS là gì?

VCS là viết tắt của Version Control System là hệ thống kiểm soát các phiên bản phân tán mã nguồn mở. Các VCS sẽ lưu trữ tất cả các file trong toàn bộ dự án và ghi lại toàn bộ lịch sử thay đổi của file. Mỗi sự thay đổi được lưu lại sẽ được và thành một version (phiên bản).

Tổng hợp 200+ tài liệu, sách, bài thực hành, video hướng dẫn lập trình… từ cơ bản đến nâng cao

VCS nghĩa là hệ thống giúp lập trình viên 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 local sẽ có thể ủy thác (commit) rồi đưa lên server 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.

Lập trình viên có thể xem lại danh sách các sự thay đổi của file như xem một dòng thời gian của các phiên bản. Mỗi phiên bản bao gồm: nội dung file bị thay đổi, ngày giờ sửa đổi, người thay đổi là ai, lý do thay đổi hay tên phiên bản…

Tại sao cần sử dụng VCS?

VCS đặc biệt hữu dụng trong các dự án lớn đòi hỏi sự tham gia của nhiều lập trình viên. Ví dụ tại cùng một thời điểm, chúng ta cần phát triển thêm nhiều feature (tính năng) mới cho phần mềm. Và mỗi thành viên trong team được phân công để phát triển một feature. Khi có hai thành viên cùng hoàn thành xong hai feature riêng biệt cùng lúc thì khi đó việc merge (gộp) code lại có thể sẽ gây ra conflict (xung đột) vì hai người này có thể sửa đổi cùng một đoạn code trên cùng một file.

THAM GIA KHÓA HỌC LẬP TRÌNH

Lúc này sử dụng VCS chúng ta có thể dễ dàng kiểm tra được sự thay đổi nào đến từ ai và cho feature nào.

VCS có tác dụng như thế nào?

  1. Lưu lại lịch sử các version của bất kỳ thay đổi nào của dự án. Giúp xem lại các sự thay đổi hoặc khôi phục (revert) lại sau này.
  2. Việc chia sẻ code trở nên dễ dàng hơn, lập trình viên có thể để public cho bất kỳ ai, hoặc private chỉ cho một số người có thẩm quyền có thể truy cập và lấy code về.

Vốn là một VCS nên Git cũng ghi nhớ lại toàn bộ lịch sử thay đổi của source code trong dự án. Lập trình sửa file, thêm dòng code tại đâu, xóa dòng code ở hàng nào…đều được Git ghi nhận và lưu trữ lại.

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

Sự khác biệt chính giữa Git và bất kỳ VCS nào khác (bao gồm Subversion…) là cách Git nghĩ về dữ liệu của nó.

Về mặt khái niệm, hầu hết các hệ thống khác đều lưu trữ thông tin dưới dạng danh sách các thay đổi dựa trên file. Các hệ thống này (CVS, Subversion, Perforce, Bazaar, v.v.) coi thông tin chúng lưu giữ dưới dạng một tập hợp các file và những thay đổi được thực hiện đối với mỗi file theo thời gian.

git
Image Credit: Stackoverflow

Git không nghĩ đến hoặc lưu trữ dữ liệu của mình theo cách này. Thay vào đó, Git coi thông tin được lưu trữ là một tập hợp các snapshot – ảnh chụp toàn bộ nội dung tất cả các file tại thời điểm.

Tham khảo: Khoá học Online nền tảng lập trình cho người mới bắt đầu bằng ngôn ngữ JavaScript

Mỗi khi bạn “commit”, Git sẽ “chụp” và tạo ra một snapshot cùng một tham chiếu tới snapshot đó. Để hiệu quả, nếu các tệp không thay đổi, Git sẽ không lưu trữ lại file — chỉ là một liên kết đến tệp giống file trước đó mà nó đã lưu trữ. Git nghĩ về dữ liệu của nó giống như dưới đây:

git
Image Credit: Stackoverflow

Đây là điểm khác biệt quan trọng giữa Git và gần như tất cả các VCS khác. Nó khiến Git phải xem xét lại hầu hết mọi khía cạnh của kiểm soát phiên bản mà hầu hết các hệ thống khác đã sao chép từ thế hệ trước. Điều này làm cho Git giống như một hệ thống tệp nhỏ với một số công cụ cực kỳ mạnh mẽ được xây dựng trên nó, thay vì chỉ đơn giản là một VCS.

Những lợi ích mang lại của Git là gì?

Git có thể giúp bạn giải quyết triệt để và nhanh chóng các vấn đề như: 

  • Lưu lại những phiên bản khác nhau của mã nguồn dự án phần mềm. 
  • Khôi phục lại các mã nguồn từ một phiên bản bất kỳ khác. 
  • Git hỗ trợ so sánh dễ dàng hơn giữa các phiên bản. 
  • Phát hiện được những vị trí, những phần mà người khác đã chỉnh sửa làm phát sinh lỗi. 
  • Khôi phục lại những tập tin đã bị mất đi. 
  • Thử nghiệm và mở rộng các tính năng của dự án một cách dễ dàng mà không làm ảnh hưởng đến các phiên bản chính. 
  • Hỗ trợ phối hợp thực hiện dự án trong một nhóm mang lại nhiều hiệu quả hơn. 
  • Git đảm bảo không có xung đột code giữa các lập trình viên trong một nhóm. 
  • Chỉ cần có 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 là lập trình viên có thể bắt tay vào làm việc mọi lúc mọi nơi. 

Trong bài viết sau sẽ tìm hiểu về các lệnh cơ bản của Git nhé!

KHOÁ HỌC LẬP TRÌNH DÀNH CHO NGƯỜI MỚI

Tham khảo bài viết khác:

https://hocspringboot.net/2021/09/12/tuong-lai-cua-java-development/

Leave a Reply

Your email address will not be published.