Git và Svn - Git toàn tập phần 1.
Thật ra mình định làm mấy cái cao siêu cơ, nhưng hôm nay chán nên là viết cái gì anh em đều dùng được chắc là vui hơn.
OK phần một Git nền tảng bắt đầu, seri mang tính tuỳ hứng cao nên là trước mắt viết luồng git đã. còn lại thì có hứng thì viết tiếp.
Nếu các bạn, ừ từng làm lập trình thì chắc chắn là đã xem qua một trong hai thứ rồi, Git và SVN. SVN vẫn phần nào được dùng trong các công ty lâu năm đặc biệt là các công ty base nhật trước đây. Vậy thì chúng ta cùng bắt đầu phân tích xem sự khác biệt của hai hệ thống quản lý source code này là gì nhé. Iu Thương =)))
OK, đầu tiên phải làm rõ cả GIT và SVN đều là những hệ thống source version control . Có thể bạn chỉ dùng chúng như một hệ thống lưu trữ file kiểu dropbox nhưng bản chất của chúng là để quản lý phiên bản và cho phép bạn gọi lại các phiên bản file cũ trong trường hợp lỗi, một hệ thống lưu trữ chuyên sâu hỗ trợ backup, callback và phân luồng xử lý file cho nhiều người.
Sự khác biệt chính chúng ta phải bàn đến ở SVN và GIT là về kiến trúc khác biệt hoàn toàn giữa chúng.
Cấu trúc tổng quan !!
Cấu trúc SVN :
- SVN xây dựng theo hướng centralization - client server. Repo trung tâm sẽ là lơi lưu vết các version code còn các máy client sẽ copy về mình một version cuối cùng của code mới nhất.
- Cơ chế branch cũng như version của SVN tất cả đều là directory và chốt các version theo commit của user.
Ưu Điểm SVN:
- Quản lý tập trung. Dẫn đến chỉ có một phiên bản chung nhất. Tốt hay xấu thật ra tuỳ góc nhìn ý mà.
- Mạnh hơn ở khả năng xử lý file binary lớn.
Nhược Điểm SVN:
- cơ chế còn thô, ít phương pháp tương tác, kéo gọi.
- Lưu trữ đơn nên có tỉ lệ mất truy vết khi server lưu trữ hỏng, chỉ có thể reco last version tại máy user.
- Branch nặng nề chuẩn subversion là một copy hoàn toàn từ truk.
- Không thích hợp cho các hệ thống cần merge lớn, cũng phải sử dụng người và tool merge nhiều hơn.
- Conflict nhiều hơn do việc client phải kéo các phiên bản liên tục để đồng bộ cũng như đồng bộ tay.
- Sử dụng cần có kết nối thường xuyên.
_________________________________________________________________________________________
Cấu Trúc GIT:
- Git xây theo hướng decentralization - ông một bản repo tôi một bản repo, repo cho anh, repo cho em, repo cho tất cả mọi người. Phát phiếu xong ai nghịch gì thì nghịch.
- Cơ chế cấu trúc của Git phức tạp hơn với dạng cây và trỏ root, blob, tag và một mớ hằm bà lằng cấu trúc. Tất cả trong file ẩn .git và bạn chỉ work với file từ branch.
- Git clone .git về và hiển thị file dựa theo branch được trỏ. Cơ bản là một dạng ghép nối trunk branch chuẩn chỉ để tạo thành file code mà user tương tác lên. Lý do bạn clone code về xong phải checkout branch để load code nhánh muốn code đấy.
Ưu Điểm GIT:
- Tốc độ cao hơn, lưu hết offline chạy sao thì chạy.
- Có thể làm việc riêng biệt, thì offline được mà, biến thể ra các dự án opensource mỗi ông chế một bản từ nhánh gốc thì thấy.
- Branch đã hoàn thiện hơn và chỉ là điểm chỉ nối nên rất nhẹ nhàng.
- Merge hoàn thiện cũng như branch của git giúp quản lý các dự án phức tạp tốt hơn yêu cầu nhiều merge.
- Branch merger được lưu trữ trong lịch sử của repo.
- Cơ chế dịch chuyển, rebranch các thứ các thứ tạo ra nhiều phương án sử dụng quản lý code.
Nhược Điểm GIT:
- Khó làm quen hơn.
- Ờ hết rồi.
- Chắc là còn đấy nhưng mình không biết.
Ờ THÔI HÔM NAY DỪNG Ở ĐÂY THÔI VÌ MÌNH LƯỜI. LÚC NÀO CÓ HỨNG THÌ VIẾT PHẦN 2 CẤU TRÚC VÀ NHỮNG TÍNH NĂNG CỦA GIT. TẤT NHIÊN LÀ PHẢI HẾT LƯỜI ĐÃ.