Git (1) - VCS의 개념, Git의 버전 관리

stav·2024년 6월 24일
0
post-thumbnail

📓 Version Control System

버전 관리 시스템은 소프트웨어 개발 과정에서 소스 코드의 변경 이력을 기록하고, 여러 명이 동시에 작업할 수 있도록 도와주는 도구이다. 이 시스템은 개발 중 문제가 발생했을 때, 특정 시점의 버전으로 돌아갈 수 있게 해준다.

다양한 VCS

  1. Local Version Control Systems: 내 컴퓨터에서 버전을 관리하는 시스템이다. 컴퓨터 하드가 날아가면 전체 코드가 사라지는 위험이 있으며, 버전은 관리되지만 협업은 여전히 어렵다.

  1. Centralized Version Control Systems: 중앙 서버에서 버전을 관리하며 협업이 가능해진다. 하지만 인터넷이 없으면 작업이 불가능하고, 자신의 버전 히스토리를 가질 수 없다. 대표적인 시스템으로는 CVS와 SVN이 있다.

  • CVS (Concurrent Versions System): 1980년대 만들어진 형상 관리 도구이다. Commit 중 오류 발생 시 Rollback이 되지 않는 등의 문제로 SVN으로 대체되었다.
  • SVN (Subversion): 2000년대에 만들어졌으며, 현재까지 널리 사용되고 있다. 공식 웹사이트는 여기에서 확인할 수 있다.
  1. Distributed Version Control Systems: 각 개발자가 자신의 저장소를 가지고 있으며, 변경 사항을 원하는 순간에만 중앙 저장소에 배포할 수 있다. 오프라인에서도 작업 가능하며, 자신의 버전 히스토리를 유지할 수 있다. 대표적으로 Mercurial과 Git이 있다.

  • Git (Global Information Tracker): SVN보다 빠르고 많은 기능을 지원하는 버전 관리 시스템으로, 요즘 많은 기업에서 사용하고 있다. 공식 웹사이트는 여기에서 확인할 수 있다.

📓 Git의 버전관리

Git은 분산형 버전 관리 시스템으로, 각 개발자가 독립적으로 작업할 수 있고, 중앙 저장소에 원하는 시점에 변경 사항을 반영할 수 있는 도구이다.
Git의 주요 기능과 작업 흐름을 이해하는 것이 중요하다.

Git의 주요 기능

  • 파일의 Diff를 시간순으로 관리
    Git은 파일의 변경 이력을 시간순으로 관리하여 변경 사항을 쉽게 추적할 수 있다. 이를 통해 각 버전 간의 차이를 명확히 파악할 수 있다.

  • 파일의 스냅샷 저장
    파일을 저장하는 순간의 스냅샷을 저장하며, 파일의 변경 사항이 없는 경우 새로 저장하지 않는다. 이는 성능을 최적화하는 데 도움이 된다.

  • Git 구성 요소

    • Working Directory: 작업 중인 파일들이 위치한 곳
    • Staging Area: Commit할 파일들이 대기하는 장소
    • .git Directory: 모든 버전 정보가 저장되는 저장소
  • 파일의 상태

    • Untracked: Git이 추적하지 않는 파일
    • Tracked: Git이 추적하는 파일
    • Staged: Commit을 위해 준비된 파일
    • Committed (Unmodified): 저장소에 저장된 파일
    • Modified: 변경된 파일
  • Git의 작업 순서

    1. Working Directory에서 파일을 수정한다.
    2. Staging Area에 Staged 하여 Commit할 스냅샷을 만든다.
    3. Commit하여 .git Directory (Repository)에 스냅샷을 저장한다.
      이 과정을 통해 효율적인 버전 관리를 할 수 있다.
  • CLI 사용 권장
    Git은 GUI보다 CLI (Command Line Interface)를 사용하는 것이 권장된다. CLI를 사용하면 Git의 모든 기능을 더 세밀하게 제어할 수 있기 때문이다.

profile
Data Analyst Challenge

0개의 댓글

관련 채용 정보