Git 동작 구조 (Git 작업 흐름)
Working Directory, Staging Area, Repository 가 무엇인지 알아보기 전에 간단한 예제를 보자.
Understanding Git a little bit with SourceTree
1. Repository 폴더에 READEME.md 파일을 만든다.
2. Unstaged files에 보라색 물음표 ? 로 표시된 README.md 파일이 생겼다.
3. wow.java 파일을 수정한다.
4. README.md 파일과 달리 wow.java 파일은 노란색 ... 로 표시되어 있다.
5. README.md 파일만 커밋한다.
6. 다시 README.md 파일을 수정한다.
7. 2번과 달리 README.md 파일이 ... 으로 표시된다.
1~7을 통해서 Git 은 한번이라도 add된 파일과 한번도 add되지 않은 파일을 구분한다는 것을 알 수 있다. 아래 그림을 참고하면, 한번이라도 add된 파일은 Modified 상태이고, 한번도 add된 적 없는 파일은 Untracked 상태이다.
Git Architecture
아래 그림은 Git 의 기본적인 동작 구조(작업 흐름)이다.

Add & Staging
Staging Area에 파일을 추가하는 것
Commit
Staging Area에서 Local Repository로 버전을 올리는 것
Working Directory & Unstaged
파일의 수정은 모두 여기서 발생한다.
Untracked & Modified
git에서 snapshot을 만들 준비가 되지 않은 상태이다.
untracked : git 프로젝트에 생성된 모든 새로운 파일
modified : 이전에 있었으나 변경된 파일
Staged & Staging Area
파일을 staged하면 staging area에 올라간다. 여기에서 git은 스냅샷을 생성하여 현재 상태를 local repository에 저장할 수 있다. staging area를 Index 라고도 부른다.
Committed & the Git Directory
committed 는 git이 staging area에서 파일의 snapshot을 공식적으로 생성하고 git directory에 고유한 index를 저장했다는 것을 의미한다. snapshotted 와 committed 두 용어는 매우 유사하다. 커밋을 통해 언제든지 지금의 프로젝트 상태로 되돌릴 수 있다.
HEAD
가장 마지막에 커밋된 snapshot
Understanding Git a little bit with SourceTree
1. Repository 폴더에 READEME.md 파일을 만든다.
2. Unstaged files에 보라색 물음표 ? 로 표시된 README.md 파일이 생겼다.
3. wow.java 파일을 수정한다.
4. README.md 파일과 달리 wow.java 파일은 노란색 ... 로 표시되어 있다.
5. README.md 파일만 커밋한다.
6. 다시 README.md 파일을 수정한다.
7. 2번과 달리 README.md 파일이 ... 으로 표시된다.
1~7을 통해서 Git 은 한번이라도 add된 파일과 한번도 add되지 않은 파일을 구분한다는 것을 알 수 있다. 아래 그림을 참고하면, 한번이라도 add된 파일은 Modified 상태이고, 한번도 add된 적 없는 파일은 Untracked 상태이다.
Git Architecture
아래 그림은 Git 의 기본적인 동작 구조(작업 흐름)이다.
Git 작업 흐름
Add & Staging
Staging Area에 파일을 추가하는 것
Commit
Staging Area에서 Local Repository로 버전을 올리는 것
Working Directory & Unstaged
파일의 수정은 모두 여기서 발생한다.
Untracked & Modified
git에서 snapshot을 만들 준비가 되지 않은 상태이다.
untracked : git 프로젝트에 생성된 모든 새로운 파일
modified : 이전에 있었으나 변경된 파일
Staged & Staging Area
파일을 staged하면 staging area에 올라간다. 여기에서 git은 스냅샷을 생성하여 현재 상태를 local repository에 저장할 수 있다. staging area를 Index 라고도 부른다.
Committed & the Git Directory
committed 는 git이 staging area에서 파일의 snapshot을 공식적으로 생성하고 git directory에 고유한 index를 저장했다는 것을 의미한다. snapshotted 와 committed 두 용어는 매우 유사하다. 커밋을 통해 언제든지 지금의 프로젝트 상태로 되돌릴 수 있다.
HEAD
가장 마지막에 커밋된 snapshot
댓글
댓글 쓰기