SVN과 Git의 가장 큰 차이점
하나의 버전을 만들기 위해 Git에서는 다음과 같은 과정을 진행합니다.
1. 변경서항을 선택(add) - 스테이지에 올리는 작업
2. 선택한 변경사항을 하나로 묶어 버전으로 만들기(commit)
하지만 커밋 객체에 변경사항의 묶음이 저장되어있지 않다. 변경사항만 부분적으로 저장하는게 아니라 변경된 파일이 통째로 저장되어 있다. 바뀐 것만 저장하면 될 것 같은데 왜 용량을 더 차지하게 파일을 전부 저장할까?
Git이 등장하기 전에는 SVN(SubVersion)과 같은 버전 관리 시스템이 제일 많이 쓰였다. 이 둘의 가장 큰 차이점은 아래 그림과 같이 변경사항만 저장하는가이다.
단순하게 생각하면 전체를 저장하는 Git보다는 차이점만 저장하는 SubVersion 방식이 용량 면에서도 좋고 속도도 빠를 것 같지만 조금 더 생각해보면 SubVersion 같은 방식은 버전을 보여줄 때 파일이 만들었던 맨 처음부터 거슬러 올라가 바뀐 점을 모두 반영해야 한다는 불편함이 있다.
예를 들어, SubVersion에서는 README.txt 파일이 백 번 바뀌었다면 백 번의 계산을 모두 해야한다. 하지만 Git은 바로 앞에서 바뀐 커밋이랑 비교하는 연산 한번 만 하면 된다. 그리고 바뀌지 않은 파일은 링크만 저장하기 때문에 용량도 적고 계산하지 않아도 된다.
'버전관리 > GUI 환경' 카테고리의 다른 글
6. 협업에서의 버전 관리: 브랜치(Branch) (0) | 2020.08.30 |
---|---|
5. 정리하기 - Git에서의 파일 관리 (0) | 2020.08.29 |
3. 소스트리에 커밋하고 푸시하기 (0) | 2020.08.28 |
2. 소스트리에 로컬 저장소를 추가하기 (0) | 2020.08.28 |
1. 소스트리(Source Tree) (0) | 2020.08.28 |