- working directory : 현재 작업중인 파일이 존재하는 공간
- staging area : 어느정도 작업하다가 버전 히스토리에 저장 할 준비가 되어있는 파일들을 옮겨 놓는 공간
- git directory : 버전의 히스토리를 가지고 있는 git repository
working directory에 작업 중이던 파일 a.py, b.py 의 수정이 완료되면 add 명령어
를 통해 staging area로 보내게 되고 commit 명령어
를 통해 git 버전 히스토리에 저장하게 됩니다. 이렇게 git directory에 저장된 버전은 local에만 보관되기때문에 저장 공간에 문제가 생기면 모든 히스토리를 잃어버리게 됩니다. 그래서 github 와 같은 서버에 push 명령어
를 수행하여 내 git directory를 서버에 업로드 해둘 수 있습니다. 이후 서버에서 pull 명령어
를 수행하여 local git directory로 다운로드 받을 수 있습니다. checkout 명령어
를 통해 git directory에 저장 된 버전 중 원하는 버전으로 돌아갈 수 있습니다.