버전 관리 시스템은 소프트웨어 개발 과정에서 소스 코드의 변경 이력을 기록하고, 여러 명이 동시에 작업할 수 있도록 도와주는 도구이다. 이 시스템은 개발 중 문제가 발생했을 때, 특정 시점의 버전으로 돌아갈 수 있게 해준다.
- CVS (Concurrent Versions System): 1980년대 만들어진 형상 관리 도구이다. Commit 중 오류 발생 시 Rollback이 되지 않는 등의 문제로 SVN으로 대체되었다.
- SVN (Subversion): 2000년대에 만들어졌으며, 현재까지 널리 사용되고 있다. 공식 웹사이트는 여기에서 확인할 수 있다.
- Git (Global Information Tracker): SVN보다 빠르고 많은 기능을 지원하는 버전 관리 시스템으로, 요즘 많은 기업에서 사용하고 있다. 공식 웹사이트는 여기에서 확인할 수 있다.
Git은 분산형 버전 관리 시스템으로, 각 개발자가 독립적으로 작업할 수 있고, 중앙 저장소에 원하는 시점에 변경 사항을 반영할 수 있는 도구이다.
Git의 주요 기능과 작업 흐름을 이해하는 것이 중요하다.
파일의 Diff
를 시간순으로 관리
Git은 파일의 변경 이력을 시간순으로 관리하여 변경 사항을 쉽게 추적할 수 있다. 이를 통해 각 버전 간의 차이를 명확히 파악할 수 있다.
파일의 스냅샷
저장
파일을 저장하는 순간의 스냅샷을 저장하며, 파일의 변경 사항이 없는 경우 새로 저장하지 않는다. 이는 성능을 최적화하는 데 도움이 된다.
Git 구성 요소
파일의 상태
Untracked
: Git이 추적하지 않는 파일Tracked
: Git이 추적하는 파일Staged
: Commit을 위해 준비된 파일Committed (Unmodified)
: 저장소에 저장된 파일Modified
: 변경된 파일Git의 작업 순서
Staged
하여 Commit
할 스냅샷을 만든다.Commit
하여 .git Directory (Repository)
에 스냅샷을 저장한다.CLI 사용 권장
Git은 GUI보다 CLI (Command Line Interface)
를 사용하는 것이 권장된다. CLI를 사용하면 Git의 모든 기능을 더 세밀하게 제어할 수 있기 때문이다.