본문 바로가기
Devops/Git

[Git] 다른 버전시스템과 비교한 Git 장점

by keyhong-DE 2023. 9. 25.

Snapshot

깃과 다른 버전 관리 시스템의 큰 차이는 깃은 데이터를 생각 할 수 있다는 것이다. 다른 시스템(델타 기반 버전 관리)들은 일부 파일의 변경사항을 전체 파일 묶음으로 저장하여 이력을 관리하지만, 깃은 변경되지 않은 파일은 새롭게 저장하지 않고 이미 저장되어 있는 이전 snapshot의 파일로부터 링크를 만든다.

 

즉, 변경되지 않은 파일은 새로 업로드 하는 것이 아니라 이전에 업로드한 파일의 링크를 연결시킴으로써, 재사용하여 저장공간을 절약한다.

(좌) 다른 버전 컨트롤 시스템 (우) Git 버전 컨트롤 시스템

Distributed Version Control System

다른 버전 관리 시스템은 원격 레포지터리(remote repository)에 모든 이력이 저장이 된다. 이에 프로젝트 참여 구성원들은 원격 레포지터리에서 최신 버전을 다운받은 파일들로만 작업이 가능하다. 이는 네트워크가 가능한 상황에서만 자유롭게 모든 기능을 사용할 수 있음을 말한다.

 

반면, Git은 분산 버전 관리 컨트롤 시스템으로 원격 레포지터리에서 모든 이력 상태를 참여 구성원이 pull과 push로 동기화, 관리함으로써 보다 자유로운 환경을 제공한다. 소스를 받아 개인 환경에서 자유롭게 바꿔 볼 수 있으며 변경사항이 있으면 개인의 레포지터리에 최신의 소스를 추가/덮어쓰기 등을 수행 할 수 있다. 분산 버전 관리이기에 협업에 약속된 rule과 코드의 충돌시 어떻게 처리할 것인가에 대한 숙지가 필요하다.  

(좌) Local version control diagram (우) Git의 Distributed version control diagram

Reference

Pro Git : https://git-scm.com/book/en/v2

'Devops > Git' 카테고리의 다른 글

[Git] branch 명령어 정리  (0) 2023.08.15