프로젝트의 역사를 기록하고, 원하는 시점으로 되돌릴 수 있게 해주는 소프트웨어. 버전 관리 시스템(VCS)이라고도 한다.
프로젝트 버전을 효율적으로 관리하기 위해 사용한다.
만약 Git을 사용하지 않는다면 프로젝트를 수정할 때마다 사본을 만들어 구별해야 할 것이다.
파일을 한번 등록하면 계속해서 감시하며 3가지 상태로 구분해 관리한다.
Modified
- 파일이 수정됨.
staged
- 수정한 파일이 커밋될 예정.
Commited
- 수정된 파일이 기록에 반영되어 있음
세 가지 단계로 구분이 가능하다. 이 단계들은 파일 상태와 관련이 있다.
Working Directory
- 현재 작업이 진행되는 특정 시점의 프로젝트 버전. 이곳에서 파일을 수정한다.
Staging Area
- 다음으로 커밋될 파일들을 모아놓은 공간. 수정된 파일은 이곳에 모여 한번에 커밋된다.
Git Directory
- 프로젝트의 역사를 기록해놓은 데이터베이스. 커밋이 완료된 시점의 프로젝트 상태를 저장한다.
Git은 수정된 파일을 하나씩 반영하지 않고 커밋하는 시점에
Staging Area
에 올라온 파일들을 한번에 갱신해서 새 버전을 만든다.commited
와staged
를 나눠 놓은 이유가 이런 특징 때문이다.