svn의 경우 중앙 저장소에서 버전별로 델타(파일의 변화)를 관리함.
특정 버전을 가져오기 위해서는 초기 버전에서 원하는 버전까지의 델타 히스토리를 연쇄적으로 계속 적용하여 결과를 보여줌
반면 git의 경우는 델타를 관리하는 것이 아니라 스냅샷으로 관리함.
스냅샷 이란, “현재의 서버, 프로젝트 데이터 등을 사진 찍듯이 그대로 찍어서 남겨두는 것”을 의미하며 스냅샷을 사용해서 데이터를 그대로 보존함.
즉, svn 처럼 변화를 관리하는 것이 아니라, 그 시점의 데이터를 그대로 관리하기 때문에 훨씬, 빠르게 특정 시점의 버전으로 돌아갈 있는것이 git의 snappshot .
특정 커밋 시점의 데이터를 스냅샷으로 관리하기 때문에 변화된 파일은 파일 그대로를 거의 복제하고, 변화되지 않은 파일들은 링크만 가지고 해당 커밋 시점의 데이터들을 그대로 저장함.
svn의 경우 중앙저장소에서 delta만을 관리하기 때문에 새로운 형태의 버전(branch)를 만들어야 한다면, 특정 시점의 파일을 만들기 위해서는 해당 지점까지의 delta를 모두 적용하여 실제 파일을 만들어야함.
반면 git의 경우는 이를 스냅샷을 이용해서 관리하기 때문에 어떤 view든, 그 시점의 스냅샷만 가지고 있다면 편리하게 관리 할수 있음. 그래서 branch간의 이동, branch 생성 등이 svn에 비해서 월등히 간편함.