깃 프로젝트에 담겨 있는 데이터들 : 파일 시스템 상에서의 스냅샷.
-> 프로젝트를 커밋하여 적용할 때의 순간을 중요시한다. 파일 자체를 저장하기보다 수정 내역 자체를 저장한다.
working directory
: 작업할 파일이 있는 디렉토리staging area
: 커밋을 수행할 파일들이 올라가는 영역git directory
: git 프로젝트의 메타 데이터와 데이터 정보가 저장되는 디렉토리(.git폴더)working directory
:소스코드 수정 등의 작업
------>(git add
) staging area
------>(git commit
) local repository
:.git
폴더에 저장
------->(git push
) remote repository
:github
다른 사람의 작업물 내 컴퓨터에 다운받기 : git fetch + git merge
git pull
: 실제 소스코드가 담겨 있으면서 커밋 내역 등의 모든 작업 이력이 담겨 있는 공간. 실제로 프로젝트의 메타 데이터를 포함해 각종 데이터는 .git
폴더에 담기게 된다. 실제로 이 폴더를 열어 보면 각종 데이터와 해시 값 등이 담겨 있다.
어떠한 파일을 커밋하게 되면 각 작업들을 분류하기 위해 내부적으로 해당 작업에 대한 해시 값을 이용하는 것. 일반적으로 해시 값은 충돌이 발생하지 않기 때문에 정확히 커밋 내역들을 관리할 수 있다.