SVN vs Git

CODEDRAGON Development/Git, PM

반응형

 

 

 

SVN vs Git

 

SVN Git
SVN 저장소
저장소는 서버에 위치




Git 저장소
로컬(내 컴퓨터)저장소가 위치





SVN 서버와의 연결중단
온라인일 경우에만 커밋 가능합니다.
원격저장소와의 연결이 끊기면 버전관리가 중단되고 복구 이후 가능합니다.





Git 서버와의 연결중단
로컬저장소를 사용하기 때문에 원격 저장소와의 연결이 끊겨도 버전관리가 가능합니다.





SVN 서버 장애
원격 저장소 손실 시 버전관리 데이터도 손실 됩니다.





Git 서버 장애
원격 저장소의 데이터가 로컬 저장소에도 보관되므로 원격 저장소가 손실되어도 로컬 저장소로 복구가 가능





SVN 변경 내역
커밋이 바로 일어납니다.





Git 변경 내역
로컬 저장소에 커밋 임시로 사용되는 영역 인덱스라는 단계가 더 존재합니다.





SVN 업로드
SVN작업 공간에서 원격 저장소로 바로 커밋이 이루어진 다른 개발자와 공유가 가능합니다.



Git 업로드
다른 개발자와 협업을 하기 위해서는 원격저장소가 필요합니다.
내 컴퓨터의 저장소에 수정 내용 커밋 후 다른 개발자와 공유 시 원격 저장소에 푸시 수행합니다.





SVN 내려받기
update명령어를 통해 원격저장소로 부터 내려받아 작업공간을 병합합니다.





Git 내려받기
원격저장소부터 내려 받아(fetch)와 로컬저장소와 작업공을 병합 (merge)합니다.





SVN update 동일하게 pull 명령어로 원격 저장소로 부터 내려받아 작업공간을 병합합니다.


SVN 수정 내역 관리 방법
수정 내역(차이점)을 저장하기 때문에 Version 5의 파일을 가져오기 위해 기초가 되는 file A, file B, file C와 함께 모든 수정 내역을 내려 받아야 합니다.





Git 수정 내역 관리 방법
수정 내역을 Commit 에 스냅샷으로 저장하기 때문에 Version 5 가져오기 위해 A2, B2, C3의 스냅샷만 네크워크를 거치지 않고 로컬 장소로부터 가져오기 때문에 매우 빠릅니다.





SVN 가지치기
체 파일을 네트워크로 내려받기 때문에 느립니다.
SVN은 디렉토리 구조로서 서버는 변경 내역과 최소한의 정보를 보관합니다.
가지치기할 때, 변경 내역을 순차적으로  기초 파일에 적용하여 실제 파일을 생성합니다.


Git 가지치기
네크워크를 거치지 않고 로컬 저장소로부터 가져오기때문에 매우 빠릅니다.
Git은 디렉토리가 아닌 스냅샷을 생성하기 때문에, 커밋 시 스냅샷이 순차적으로 생성되면서 가지를 치게됩니다.
작업 중 원본과 가지를 자유롭게 선택하는 것이 가능합니다.





SVN 합치기
합칠 경우 위치와 병합 수정 내역을 확인하는 과정이 필요하기 때문에 SVN 합치는 속도가 느립니다.
Git 합치기
공통된 조상과 각 가지 하나를 이용하여 칩니다. (3-Way Merge) 그래서 SVN보다 빠릅니다.





http://bit.ly/2GHwaOJ

 

 

 

http://bit.ly/2GEDwCt