GIT
: 리눅스의 창시자인 리누스 토발즈가 Linux 커널을 관리할 목적으로 개발.
- 분산형 버전 관리 시스템
- 필요성 : 소스 코드, 작업물 등을 관리하기에 편리함
버전 관리 시스템(Version Cintrol System)
: 사용자 프로젝트에 포함된 파일의 변경 내역을 추적할 수 있게 하는 도구, 방법론
- 기존 버전 관리 시스템은 중앙 서버에 소스코드와 history를 직접 저장하는 방식
- 분산 버전 관리 시스템은 여러 개발 pc와 저장소에 분산해서 저장하는 방식
중앙집중식 버전관리 - SVN(Subversion)
- 중앙 서버에 소스 코드와 histoty를 직접 저장하는 방식
단점
- 각 개발자만의 history를 관리할 수 없다
- commit된 내용에 실수가 있을 시, 서버의 다른 개발자에게 바로 영향을 미침
→ 중앙 서버 문제생기면 협업 x
분산형 버전 관리 시스템 - DVCS, GIT
- 여러 개발 pc와 저장소에 분산해서 저장하는 방식
장점
- 모든 작업자가 원본 가질 수 있음
→ 개별 history 관리 가능
- 네트워크 사용 못하는 상황에도 대부분의 작업 가능
소프트웨어 형상 관리 (SCM, Software Configuration Manangement)
- sw 개발, 유지보수 과정에서 발생하는 각종 결과물에 대한 형상을 만들고, 형상에 대한 변경을
체계적으로 관리, 제어 하기 위한 활동
깃허브(GitHub)
- git 을 기반으로 소스코드를 호스팅, 협업 기능 지원하는 웹 서비스
Git 저장소(repository)
1 원격 저장소 (Remote Repository)
- GitHub 등 전용 서버에서 관리되는 저장소
- 여러사람이 함께 공유하기 위한 저장소
2 로컬 저장소 (Local Repository)
- 내 pc에 파일 저장, 개인 전용으로 사용하는 저장소
반드시 기억해야 할 파일의 3가지 상태 - 논리적인 구분