99클럽 코테 스터디 30일차 VersionControl
728x90

3일간 예비군 이였어서 TIL 을 잠시 멈췄었다...

    • Version Control
    • Git
    • GitHub

란?

  • Version Control 또는 Source Control 은 파일 변경 사항을 관리하고 여러 시점의 버전을 기록 및 추적할 수 있게 하는 시스템

주요 기능

  1. 변경 이력 기록 : 모든 파일의 수정 내역을 자세히 기록하여, 언제 누가 무엇을 변경했는지 파악할 수 있음.
  2. 병렬 개발 지원 : 여러 개발자가 동시에 같은 프로젝트에서 작업할 수 있도록 지우너하며, 각자의 변경 사항을 안전하게 통합할 수 있는 방법을 제공함.
  3. 버전 백업 : 모든 변경 사항을 안전하게 저장하고 필요한 경우 이전 버전으로 롤백할 수 있는 기능을 제공함.
  4. 분기 및 병합 : 프로젝트의 다양한 기능 개발이나 실험을 독립적으로 진행할 수 있게 해주는 분기(Branch) 기능과 이러한 분기들을 주 프로젝트에 병합(Merge) 하는 기능을 제공함.

버전 컨트롤 유형

  1. 중앙 집중식 버전 컨트롤 시스템(CVCS)
    • 예시
      • Subversion(SVN), CVS
    • 중앙 서버가 모든 파일의 버전을 관리함.
    • 사용자는 중앙 서버에서 최신 파일을 체크아웃 하여 사용하고 변경 사항을 커밋 하여 중앙 서버에 업데이트함.
  2. 분산 버전 컨트롤 시스템(DVCS)
    • 예시
      • Git, Mercurial
    • 각 사용자가 전체 코드베이스의 복사본(클론)을 로컬에 보유하며, 로컬에서 커밋과 같은 버전 관리 작업을 수행할 수 있음.
    • 사용자는 다른 사용자와 직접 또는 중앙 리포지토리를 통해 변경 사항을 공유할 수 있음.

용어

  • Repository : 프로젝트의 파일 및 이력이 저장되는 곳
  • Commit : 변경 사항을 리포지토리에 안전하게 저장하는 행위
  • Branch : 주 개발 라인에서 분기해 독립적으로 개발을 진행할 수 있는 별도의 코드 버전
  • Main(Master) / Main(Main) : 프로젝트의 주 개발 브런치
  • Merge(병합) : 하나의 브랜치에 다른 브랜치의 변경 사항을 로컬 리포지토리로 가져오는 행위
  • Pull(풀) : 원격 리포지토리로부터 최신 변경 사항을 로컬 리포지토리로 가져오는 행위
  • Push(푸시) : 로컬 리포지토리의 변경 사항을 원격 리포지토리에 업데트 하는 행위
728x90