BÁO CÁO
BÀI TẬP
LỚN
Đề 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:
Họ và tên
Nguyễn Thành Bắc
MSSV
20194229
Trương Văn Hiển
20194276
Đinh Trọng Nghĩa
20194340
Nguyễn Trường Sơn
20194364
Chươ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
4
• 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
nay
5
• 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 tồn cao
Không yêu cầu phần cứng mạnh
Phân nhánh dễ dàng hơn
6
• 1.3. Đặc tính phi tập trung của Git
- Ví dụ minh họa:
7
• 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
8
• 1.5. Mô hình quản lý source phân tán
- Git có hướng tiếp cận hồn tồ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 hồn tồn đối lập
- Tính phân tán an tồn hơn tính tập trung
9
• 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
10
Chươ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ộ
11
Chươ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)
12
Chươ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ữ
gốc
13
Chươ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 qn
• 5.2.1. Quản lý dữ liệu trong Git
• 5.2.2. Các trạng thái trong Git
14
• 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.
15
• 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
16
• 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?
17
Chươ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 ở q 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
18
THANK
YOU !
19