깃(Git)프로젝트에 담겨있는 데이터들은 파일 시스템 상에서의 스냅샷(Snapshot)이라고 볼 수 있습니다. 실제로 프로젝트를 커밋(commit)하여 적용할 떄의 순간을 중요시한다는 특징이 있습니다. 파일 자체를 저장하기보다 수정내역자체를 저장합니다.
Git 동작원리 세 가지 구성요소
- Working Directory : 작업할 파일이 있는 디렉토리입니다.
- Staging Area: 커밋(Commit)을 수행할 파일들이 올라가는 영역입니다.
- Git Directory : Git 프로젝트의 메타 데이터와 테이터 정보가 저장되는 디렉토리 입니다.
Git 의 기본적인 동작 과정
특정한 파일을 추가, 수정등의 작업을 Working Directory 하게되면 Staging Area 올리기 위해 add를 합니다.
정상적으로 수정이 이루어진 파일들은 commit을 이용해서 Local Repository 이루어집니다. 다시말해서 commit 만을 했을 때는 자신의 컴퓨터 자체에 기록이 되고 Remote Repository 는 저장이 안됩니다. push를 해주어야 반영이 됩니다.
다양한 사람들과 프로젝트를 하면서 다른사람들이 수정한 데이터를 fetch를 통해 자신의 컴퓨터에 다운로드를 받을 수 있으며 충돌이 발생할 경우에 merge를 수행함으로써 동일하게 반영할 수 있도록 합니다.
git fetch와 git merge를 한번에 사용하는 명령어인 git pull을 사용할 수도 있습니다.
정리하자면 add, commit, push를 통해서 Remote Repository 가 되며 내용을 다시 컴퓨터로 반영하고자 할 떄 git pull을 사용합니다.
Repository
저장소는 실제 소스코드가 담겨 있으면서 커밋(Commit) 내역 등의 모든 작업 이력이 담겨 있는 공간을 의미합니다.
실제로 프로젝트의 메타데이터를 포함해 각종 데이터는 .git 폴더에 담기게 됩니다.
어떠한 파일을 Commit 하게 되면 각 작업들을 분류하기 위해 내부적으로 해당 작업에 대한 해시 값을 이용하는 것입니다. 일반적으로 해시 값은 충돌이 발생하지 않기 때문에 정확히 커밋 내역들을 관리 할 수 있습니다.
'git' 카테고리의 다른 글
소규모 협업하기 (0) | 2021.12.15 |
---|---|
git 되돌리기 명령어 (0) | 2021.12.07 |
[데어프로그래밍] git 2 버전관리시스템 , 깃 실행 원리 (0) | 2021.12.05 |
[데어프로그래밍] git 1. ( git의 배경, github) (0) | 2021.12.05 |
Git이 등장한 배경과 장점 (0) | 2021.10.19 |