본문 바로가기
개발/ETC

Git, SVN 차이

by devhooney 2023. 4. 24.
728x90

1. 분산 vs 중앙 집중식: git은 분산 버전 관리 시스템이며, 모든 개발자가 로컬 저장소를 가지고 독립적으로 작업할 수 있고, 변경 사항을 원격 저장소와 동기화할 수 있다. 반면에 svn은 중앙 집중식 버전 관리 시스템으로, 모든 개발자들이 중앙 서버에 접근하여 작업하고 변경 사항을 반영한다.

2. 브랜치와 병합: git은 브랜치와 병합 기능이 강력하게 내장되어 있어, 다양한 브랜치를 만들고 병합을 수행하여 동시에 다양한 작업을 처리할 수 있다. svn도 브랜치와 병합을 지원하지만, git에 비해 제한적이고 번거로운 경우가 있다.

3. 로컬 저장소 vs 중앙 서버: git은 로컬 저장소를 가지고 작업할 수 있어, 오프라인 상태에서도 커밋, 브랜치 생성, 히스토리 조회 등이 가능하다. 반면에 svn은 중앙 서버에 연결되어야만 작업이 가능하며, 오프라인 상태에서는 제한된 작업만 가능하다.

4. 분산 개발 및 협업: git은 분산 환경에서 개발이 가능하며, 다수의 개발자들이 동시에 작업하고 변경 사항을 원격 저장소에 동기화할 수 있다. svn은 중앙 집중식으로 개발을 진행하기 때문에, 중앙 서버에 대한 의존성이 높아 협업이 제한될 수 있다.

5. 브랜치 병합 전략: git은 다양한 브랜치 병합 전략을 제공하고, 개발자가 선택할 수 있다. svn은 특정한 브랜치 병합 전략을 제공하지 않고, 단순한 머지 기능만을 제공한다.

6. 레포지토리 구조: git은 .git이라는 하위 디렉토리에 메타데이터와 저장소 정보를 저장한다. svn은 .svn이라는 디렉토리를 각각의 디렉토리마다 생성하여 메타데이터를 저장한다.

 

요약하면, git과 svn은 둘 다 버전 관리 시스템이지만, git은 분산 버전 관리 시스템으로 로컬 저장소에서 작업이 가능하며, 브랜치와 병합 기능이 강력하며, 협업이 분산 환경에서 가능.

반면에 svn은 중앙 집중식 버전 관리 시스템으로 중앙 서버에 의존하며, 브랜치와 병합이 제한적이고, 협업이 중앙 서버에 의존적.

또한 git은 .git 디렉토리에 메타데이터를 저장하고, svn은 .svn 디렉토리를 각 디렉토리마다 생성하여 메타데이터를 저장.

 

 

728x90