Mơ hình quản lý source phân tán- Git có hướng tiếp cận hoàn toàn mới so với SVN- Source control ra đời để phục vụ nhu cầu cho nhiều hơn một developer- Git hoàn toàn đối lập Trang 10 1
Trang 2BÁO CÁO BÀI TẬP
LỚN
Trang 3Đề tài: Tìm hiểu về Git dưới góc nhìn của Hệ phân tán
Giảng viên hướng dẫn: TS Đặng Tuấn Linh Danh sách thành viên nhóm:
Nguyễn Thành Bắc 20194229
Trương Văn Hiển 20194276
Đinh Trọng Nghĩa 20194340
Nguyễn Trường Sơn 20194364
Trang 4Chương 1: Kiến trúc hệ phân tán
• 1.1 Khái niệm về Git
• 1.2 Các lợi thế của Git
• 1.3 Đặc tính phi tập trung của Git
• 1.4 Hệ thống quản lý phiên bản (VCS)
• 1.5 Mô hình quản lý source phân tán
• 1.6 So sánh mô hình quản lý source CVS -
SVN
Trang 5• 1.1 Khái niệm về Git
- Git là tên gọi
của một 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ý phien
bản phân tán phổ
biến nhất hiện
Trang 6• 1.2 Các lợi thế của Git
- Mã nguồn mở và miễn phí
- Tốc độ nhanh và nhỏ gọn
- Dự phòng ẩn
- An toàn cao
- Không yêu cầu phần cứng mạnh
- Phân nhánh dễ dàng hơn
Trang 7• 1.3 Đặc tính phi tập trung của Git
- Ví dụ minh họa:
Trang 8• 1.4 Hệ thống quản lý phiên bản (VCS)
- Là một dạng phần mềm Quản lý mã nguồn
(SCM)
- Vì sao phải sử dụng VCS?
=>Vì VCS là hệ thống hỗ trợ làm việc nhóm
hiệu quả
- Chức năng của VCS:
+ Lưu lại lịch sử thay đổi của file
+ Làm việc đồng thời
+ Phân nhánh và hợp nhất
+ Truy xuất nguồn gốc
Trang 9• 1.5 Mô hình quản lý source phân tán
- Git có hướng tiếp cận hoàn toàn mới so với
SVN
- Source control ra đời để phục vụ nhu cầu cho nhiều hơn một developer
- Git hoàn toàn đối lập
- Tính phân tán an toàn hơn tính tập trung
Trang 10• 1.6 So sánh mô hình quản lý source
CVS - SVN
- Sự cải thiện lớn nhất của SVN từ CVS là bổ
sung commit của các thành viên gọi là Atomic Commit
- Các commit của SVN có thể roll-back lại trạng thái trước đó, CVS thì không thể undo
- SVN tiện lợi hơn CVS trong việc đổi tên và di chuyển các tập tin, thư mục
Trang 11Chương 2: Trao đổi thông tin
- Phần lớn các thao tác/hoạt động trong Git chỉ cần yêu cầu các tập tin hay tài nguyên cục
bộ
Trang 12Chương 3: Cơ chế định danh
- Thành phần quan trọng của object: type (4
loại: blob, tree, commit, tag), size, content
- Khái niệm liên quan đến cơ chế snapshot của Git là loose object format (định danh đối
tượng trong suốt của git)
Trang 13Chương 4: Cơ chế đồng bộ hóa
- Git và Github không giống nhau nhưng chúng thường được sử dụng cùng nhau:
+ Git là hệ thống kiểm soát phiên bản
+ Muốn lưu trữ trong host website có thể tạo tài khoản tại Github, …
- Kho lưu trữ cục bộ và từ xa:
+ Clone là tạo một bản sao của kho lưu trữ Git + Để đồng bộ hóa kho này, chúng ta sẽ sử
dụng nhiều hàm hơn (git fetch, git pull, git
push)
- Lấy những commits mới hơn từ kho lưu trữ
Trang 14Chương 5: Tính nhân bản và nhất quán
• 5.1 Tính nhân bản
• 5.2 Tính nhất quán
• 5.2.1 Quản lý dữ liệu trong Git
• 5.2.2 Các trạng thái trong Git
Trang 15• 5.1 Tính nhân bản
- Quan trọng với hệ phân tán vì:
+ Tăng tính tin cậy cho hệ thống
+ Tăng hiệu năng của hệ thống
- Tiêu chí của Git: “Every thing is local”
- Các nhân bản sẽ được lưu trữ trực tiếp ngay tại chính local của người dùng
Trang 16• 5.2.1 Quản lý dữ liệu trong Git
- Mọi thứ trong Git được “băm” trước khi lưu trữ
và được tham chiếu tới bằng mã băm đó
- Cơ chế Git sử dụng là mã băm SHA-1
- Các mã băm được sử dụng mọi nơi trong Git
- Git quản lý Repository theo các phiên bản mà
dữ liệu bị sửa đổi
Trang 17• 5.2.2 Các trạng thái trong Git
- Quản lý dựa trên 3 trạng thái: committed,
modified và staged
- Dự án sử dụng Git: thư mục Git, thư mục làm việc và khu vực tổ chức
- Tiến trình công việc cơ bản của Git?
Trang 18Chương 6: Tính chịu lỗi của hệ phân tán
- Vấn đề xảy ra lỗi chính nằm ở quá trình
commit và push dữ liệu lên server
- Không thể tránh khỏi việc có nhiều hơn một người dùng cùng chỉnh sửa một file dữ liệu và cùng đẩy lên
- Lỗi xảy ra hầu hết đến từ phía người dùng
Trang 19THANK
YOU !