본문 바로가기

Git

Git과 SVN의 차이

728x90

버전 관리 시스템 개념(Version Control System)

버전 관리 시스템은 파일의 변경 이력을 저장하고, 여러 사용자가 동시에 작업 및 협업할 수 있도록 돕는 소프트웨어 도구입니다. 주로 소프트웨어 개발 프로젝트에서 코드 변경을 추적하고, 개발자들이 이전 버전으로 되돌릴 수 있게 해줍니다.

버전 관리 시스템의 주요 유형

  • 중앙집중식 버전 관리 시스템(Centralized Version Control System, CVCS)
    • 중앙 서버에서 저장소를 관리하고, 개발자들이 서버와 통신하여 코드 변경 내역을 저장하고 업데이트합니다. 이 방식의 대표적인 예로는 Subversion(SVN)이 있습니다.
  • 분산 버전 관리 시스템(Distributed Version Control System. DVCS)
    • 각 개발자의 로컬 저장소에 전체 코드 이력이 복제되며, 개발자들은 로컬 저장소에서 작업한 후, 다른 사용자와 변경 내역을 교환하며 통합합니다. 이 방식의 대표적인 예로는 Git이 있습니다.

Git과 SVN의 차이

1. 기본 구조 차이

SVN 중앙 서버에서 전체 코드 및 변경 이력을 저장하는 중앙집중식 구조를 사용합니다. 개발자들은 중앙 서버와 연결해야 하며, 작업한 내용을 중앙 서버에 커밋하고 최신 변경 사항을 받아옵니다.
Git 분산 구조를 사용하며, 각 개발자의 로컬 저장소에 전체 코드 및 변경 이력이 복제됩니다. 개발자들은 로컬 저장소에서 작업하고, 변경 사항을 원격 저장소와 동기화합니다. 이로 인해 오프라인에서도 작업이 가능합니다.

2. 워크플로우 차이

SVN SVN 워크플로우에서는 개발자가 중앙 서버와의 연결이 필요합니다. 작업을 시작하기 전에 중앙 서버에서 최신 코드를 받아온 후(업데이트), 작업이 끝난 후 중앙 서버에 변경 사항을 반영합니다(커밋). 변경 사항이 겹치는 경우 충돌이 발생할 수 있으며, 충돌 해결 후에만 커밋이 가능합니다.
Git Git 워크플로우에서는 개발자가 로컬 저장소에서 독립저긍로 작업할 수 있습니다. 개발자는 작업 후 로컬 저장소에 커밋하고, 원격 저장소와 동기화할 때만 인터넷 연결이 필요합니다. 충돌이 발생하는 경우, 로컬에서 충돌을 해결한 후 원격 저장소에 푸시(push)합니다.

3. 브랜치 생성

SVN 브랜치를 만들 때 전체 파일을 복사해 새로운 디렉토리를 생성하는 방식을 사용합니다. 따라서 브랜치를 생성할 때마다 새로운 파일이 추가되며, 이로 인해 저장소의 용량이 증가하게 됩니다.
Git 브랜치를 만들 때 기존의 커밋 히스토리를 참조하는 방식을 사용합니다. 따라서 브랜치를 생성해도 새로운 파일이 추가되지 않으며, 저장소의 용량이 증가하지 않습니다.

4. 브랜치 도구

Git은 브랜치를 빠르고 효율적으로 관리할 수 있는 도구를 많이 제공합니다. Git에서는 브랜치를 만들고 삭제하는 것이 매우 간단하며, 브랜치 간의 병합도 쉽고 빠릅니다. 또한 Git에서는 브랜치를 이용한 병렬 개발이 매우 쉽게 가능하므로, 여러 개발자가 동시에 작업을 수행할 때도 효율적으로 협업할 수 있습니다.
따라서 Git은 SVN보다 브랜치 관리에 있어서 빠르고 효율적인 장점이 있습니다. 이를 통해 개발자들은 더욱 효율적인 개발을 수행할 수 있으며, 버전 관리 시스템으로서의 가치를 높일 수 있습니다.

[출처]

https://needjarvis.tistory.com/803

728x90

'Git' 카테고리의 다른 글

reset, revert, rebase 차이  (0) 2023.11.08
git cherry-pick 취소하는 방법  (0) 2022.12.06