Sự khác biệt giữa Git và SVN

Git vs SVN

Git và SVN đều là phần mềm. Git là SCM, quản lý mã nguồn và hệ thống kiểm soát sửa đổi phân tán. SVN là hệ thống kiểm soát sửa đổi và phiên bản phần mềm.

 Git là một SCM với trọng tâm chính là tốc độ. Nó được phát triển cho nhân Linux bởi Linus Torvalds. Nó có một kho lưu trữ với khả năng theo dõi sửa đổi và lịch sử đầy đủ. Kho lưu trữ này không phụ thuộc vào máy chủ trung tâm hoặc truy cập mạng. Đây là phần mềm miễn phí. Git được phân phối theo GNU và bảo trì của nó được giám sát bởi Junio ​​Hamano. Apache Subversion, hoặc SVN, được phân phối theo giấy phép nguồn mở. Nó là một VCS không phân phối, Hệ thống kiểm soát phiên bản. Nó không có một kho lưu trữ tập trung hoặc máy chủ tập trung. Nó chủ yếu được sử dụng để duy trì các phiên bản lịch sử và hiện tại của mã nguồn, tài liệu và trang Web. Mục đích chính của SVN là được sử dụng như một sự kế thừa cho CVS, Hệ thống phiên bản đồng thời. Nó được phát triển bởi CollabNet, Inc.

 Nội dung được lưu trữ trong Git là siêu dữ liệu. Nó lưu trữ nội dung trong thư mục gọi là thư mục .git, có kích thước lớn hơn. Thư mục .git trong máy là kho lưu trữ nhân bản. Thư mục bao gồm tất cả các thẻ, lịch sử phiên bản, các nhánh, v.v., như trong kho lưu trữ trung tâm; SVN lưu trữ các tập tin. Họ không có kho lưu trữ nhân bản.

 Các nhánh Git dễ làm việc hơn. Hệ thống giúp nhanh chóng hợp nhất các tệp và cũng giúp tìm kiếm các tệp chưa được trộn; các nhánh SVN thực sự là một thư mục có trong kho lưu trữ. Để hợp nhất các nhánh, cần có các lệnh đặc biệt.

 SVN có số sửa đổi toàn cầu, số sửa đổi là ảnh chụp nhanh của mã nguồn; Git không có cái này.

 Git có nội dung được băm mật mã. Điều này được thực hiện bằng cách sử dụng thuật toán gọi là thuật toán băm SHA1. Tính năng này giúp bảo vệ nội dung khỏi tham nhũng kho lưu trữ do sự cố mạng hoặc lỗi đĩa.

Tóm lược:

  1. Git là một VCS phân tán; SVN là một VCS không phân phối.
  2. Git có một máy chủ và kho lưu trữ tập trung; SVN không có máy chủ hoặc kho lưu trữ tập trung.
  3. Nội dung trong Git được lưu trữ dưới dạng siêu dữ liệu; SVN lưu trữ các tệp nội dung.
  4. Chi nhánh Git dễ làm việc hơn các chi nhánh SVN.
  5. Git không có tính năng số sửa đổi toàn cầu như SVN có.
  6. Git có bảo vệ nội dung tốt hơn SVN.
  7. Lin được phát triển cho nhân Linux bởi Linus Torvalds; SVN được phát triển bởi CollabNet, Inc.
  8. Git được phân phối theo GNU và Junio ​​Hamano bảo trì nó; Subversion Apache, hoặc SVN, được phân phối theo giấy phép nguồn mở.