Git

[Git] Git 동작 흐름 (Workflow)

neck392 2024. 11. 2. 03:51

Workflow

// local repository 생성 명령어
git init

Git은 단순히 위 명령어로 local repository를 생성하고 파일을 생성 혹은 수정한 뒤 "CTRL+S"를 누른 모든 파일들이 바로 repository에 업로드(적용)되지 않는다.

각 파일들을 각각의 영역에 순차적으로 등록한 뒤에 최종적으로 repository에 업로드하는 명령어를 입력해야 하며 이에 따라 파일들의 상태도 변화한다.

 

"git init"을 수행한 작업 공간을 working directory 혹은 working tree라고 부른다.

working directory와 최종적으로 업로드되는 repository 사이에 index라고도 하는 stage area라는 공간이 존재하며 working directory에서 stage area를 통하여 순차적으로 repository에 최종 업로드 되는 형태이다. stage area는 쉽게 말해서 일종의 Buffer 역할을 수행한다.

파일들을 각각의 가상의 공간으로 이동시키거나 제거할 수 있으며 "git commit" 명령어는 "git add" 명령어로 stage area에 등록(저장)된 파일들만이 commit 시킨다. 이후에 "git push" 명령어를 통하여 최종적으로 repository에 변경 사항을 업로드할 수 있다.

 

commit을 수행하면 해시값이 생성되며 이를 통하여 과거 시점으로 이동이 가능하지만, 해당 시점의 working directory의 모든 파일들이 그 상태 그대로 존재하지 않으며 stage area를 통하여 commit 된 파일들 즉, 과거 시점에 stage area에 등록된 파일들만 해당되어 reposiroty에 저장된다.

 

Workflow cleanup

  1. Working Tree : 실제 작업 수행 공간이며 파일 추가, 수정, 삭제가 이루어진다.
  2. Stage Area : "git add" 명령어를 사용하여 변경 사항을 등록한다. 커밋할 준비가 된 변경 사항을 보관하는 임시 공간이다.
  3. Local Repository : "git commit" 명령어를 실행하면 stage area에 있는 변경 사항이 local repository에 커밋된다. 이때, 변경 사항이 로컬 Git 데이터베이스에 기록되어 버전 변경 이력이 생성된다.
  4. Remote Repository : "git push" 명령어를 통하여 local repository에 등록된 커밋이 최종적으로 remote repository에 등록된다. 

<작업 흐름 정리>

stage area는 일종의 Buffer라고도 볼 수 있다.