[Git] VCS

jayce·2024년 6월 16일

프로젝트 개발

  • 하나의 프로젝트를 여러명이 동시에 개발해야 함
  • 개발 중 문제가 발생하면, 문제의 전후 상황을 파악하여 특정 시점의 버전으로 돌아갈 수 있어야 함
  • 버전별로 소스가 관리되어야 함
  • 여러 개발 시스템이 연동되어야 함

오늘날 버전관리시스템

  • 형상 관리 시스템(CSM, Configuration Management System)
  • 버전 관리 시스템(VCS, Version Control System)
  • Source Data + History
  • 협업, 작업 추적, 복구 등이 가능

VCS(Version Control System)

Local Version Control Systems

  • 내 PC에서 버전 관리 가능 (🚨 내 PC하드가 날아가면 전체코드가 사라짐)
  • 버전은 관리되지만, 협업이 어려움

Centrailzed VCS(중앙 집중식 버전관리)

  • 협업 가능
  • commit하는 순간에 배포되어 다수에게 버그 유발 가능 (서버로 바로 commit)
    인터넷이 안되면 작업 불가능
  • 자신만의 version history를 가질 수 없음
  • CVS, SVN etc

Distributed VCS (분산 버전관리)

  • commit하더라도 개인저장소 내에 적용됨
  • 원하는 순간에 배포(Push)
  • 오프라인에서도 작업가능
  • 자신만의 version history를 가짐
  • Mercurial. Git,etc

VSC 종류

Centralized VSC : CVS, SVN, etc
Distributed VSC : Mercurial, Git, etc

CVS (Concurrent Versions Systems)

  • 1980년대 만들어진 형상관리튤
  • Commit 중 오류발생 시 Rollback이 되지않는 등의 문제
  • 이후 SVN으로 대체됨

SVN (Subversion)

  • SVN
  • 2000년대 만들어졌고 현재까지 두루 사용 중

Git (Global Information Tracker)

  • Git -> 복잡한 까다로운 상황 발생 시 사이트 참고하여 해결
  • SVN보다 빠른 속도와 많은 기능을 지원
  • 요즘 기업들은 대부분 Git을 사용 중

0개의 댓글