Configuration Management Systems
Version Control Systems
버전관리 -> Source Data + History
버전관리(형상관리)를 하게되면 작업추적, 협업, 복구 등이 가능하다.
<탄생배경>
어떤 소프트웨어를 만들고 운영해 나가려면 계속해서 업데이트를 해줘야 한다.
이때 과거의 어떤 버전에서 특정 기능을 가져올 필요가 있을 수 있고 협업시 누군가 실수로 잘못된 코드를 섞으면 복원해야 할 때도 있다.
중요한 시점마다 프로젝트를 통째로 압축해서 날짜나 설명 등을 파일명에 넣고 각자 따로 Local Folder에 저장 한다면 용량도 커지고 번거로워 진다.
프로젝트 규모가 커지게 되면 여러명이 붙어서 작업을 하게 되는데 이때 이메일이나 클라우드 상으로 공유하기에도 복잡하게 된다.
<기본원리>
수행하고 있는 프로젝트 폴더 안에서 git을 시작하면 이 프로젝트 폴더의 모든 수정내역들이 저장되는 .git이라는 폴더가 생성된다.
어느정도 프로젝트를 수행하고 commit이라는 명령어를 실행하면 이 시점까지 진행된 작업을 사진처럼 찍게된다.(현재시점까지의 내용들이 박제가 됨)
압축파일로 저장할 때 처럼 전체가 따로 복사가 되는것이 아니라 각 버전의 변경사항들만 기록되는 것이기 때문에 박제가 여러번 된다고 용량을 많이 차지하고 그런 것이 아니다.
또 프로젝트를 진행하다보면 새로운 시도를 할 때가 생기는데 이럴때 branch(가지)를 쳐서 프로젝트의 분기가 가능하다.
git을 통해서 박제했던 내용들을 github(공용공간)에 저장할 수 있다.
팀원들은 github에서 지금까지 저장된 협업내용을 다운받아 각자 작업을 진행하고 작업내용을 다시 github에 저장하여 서로 협업이 가능하다.
<요약>
git은 버전관리를 위한 소프트웨어이다.
github는 git을 통해 전송된 내역들을 저장할 수 있는 공간을 제공하는 서비스이다.