99클럽 TIL
99클럽 코테 스터디 30일차 VersionControl
차가리
2024. 6. 21. 22:15
728x90
3일간 예비군 이였어서 TIL 을 잠시 멈췄었다...
-
- Version Control
- Git
- GitHub
란?
- Version Control 또는 Source Control 은 파일 변경 사항을 관리하고 여러 시점의 버전을 기록 및 추적할 수 있게 하는 시스템
주요 기능
- 변경 이력 기록 : 모든 파일의 수정 내역을 자세히 기록하여, 언제 누가 무엇을 변경했는지 파악할 수 있음.
- 병렬 개발 지원 : 여러 개발자가 동시에 같은 프로젝트에서 작업할 수 있도록 지우너하며, 각자의 변경 사항을 안전하게 통합할 수 있는 방법을 제공함.
- 버전 백업 : 모든 변경 사항을 안전하게 저장하고 필요한 경우 이전 버전으로 롤백할 수 있는 기능을 제공함.
- 분기 및 병합 : 프로젝트의 다양한 기능 개발이나 실험을 독립적으로 진행할 수 있게 해주는 분기(Branch) 기능과 이러한 분기들을 주 프로젝트에 병합(Merge) 하는 기능을 제공함.
버전 컨트롤 유형
- 중앙 집중식 버전 컨트롤 시스템(CVCS)
- 예시
- Subversion(SVN), CVS
- 중앙 서버가 모든 파일의 버전을 관리함.
- 사용자는 중앙 서버에서 최신 파일을
체크아웃
하여 사용하고 변경 사항을커밋
하여 중앙 서버에 업데이트함.
- 예시
- 분산 버전 컨트롤 시스템(DVCS)
- 예시
- Git, Mercurial
- 각 사용자가 전체 코드베이스의 복사본(클론)을 로컬에 보유하며, 로컬에서 커밋과 같은 버전 관리 작업을 수행할 수 있음.
- 사용자는 다른 사용자와 직접 또는 중앙 리포지토리를 통해 변경 사항을 공유할 수 있음.
- 예시
용어
- Repository : 프로젝트의 파일 및 이력이 저장되는 곳
- Commit : 변경 사항을 리포지토리에 안전하게 저장하는 행위
- Branch : 주 개발 라인에서 분기해 독립적으로 개발을 진행할 수 있는 별도의 코드 버전
- Main(Master) / Main(Main) : 프로젝트의 주 개발 브런치
- Merge(병합) : 하나의 브랜치에 다른 브랜치의 변경 사항을 로컬 리포지토리로 가져오는 행위
- Pull(풀) : 원격 리포지토리로부터 최신 변경 사항을 로컬 리포지토리로 가져오는 행위
- Push(푸시) : 로컬 리포지토리의 변경 사항을 원격 리포지토리에 업데트 하는 행위
728x90