본문 바로가기
Infra/GIT&GIT HUB

Git (2) : git의 workflow

by jaeaemin 2021. 6. 30.

저 같은 경우에는 드라이버 밑에 project라는 폴더안에 git이라는 폴더에서 git을 관리하고 있습니다.

깃을 초기화하기 위해서는 git init 명령어를 통해서 폴더안에 git 프로젝트로 만들 수 있습니다.

 

 

GIT에는 총 3가지의 workflow로 구분되어 진다.

1. working directory : 작업하고 있는 공간

2. staging area  : 저장할 준비를 위해 파일을 옮겨놓는 공간 

3. .git directory  : commit을 통해 staging area에서 넘어온 버전의 history를 가지는 공간 

     -저장된 history는 check out 명령어를 통해 작업 공간으로 불러들일 수 있다.

 

하지만 위의 workflow는 내 컴퓨터에 대해서 저장되기 때문에 컴퓨터에 문제가 발생 시 history를 잃을 위험이 있습니다. 따라서 github와 같은 서버에 PUSH와 PULL명령어를 통해 gitdirectory를 업로드와 다운로드 한다.

이 때 각 버전에는 스냅샷의 정보를 기반으로 해쉬코드와 ID, Vesion, 소유자, 작성 시간등이 포함된다.

 

 

Working Directory 

2가지의 상태로 분류할 수 있다.

1. untracked : 새로 만들어진 파일 or 기존 프로젝트에서 초기화한 상태는 파일에 대한 정보가 없음

 

2. trancked : git이 이미 정보를 가진 파일로 modified와 unmodified로 나눌 수 있고 modified파일이 statging area로 옮겨지게 된다.

 

a,b,c를 git 디렉터리에 만든 후 git의 상태를 출력하면 commit되지 않은 untracked된 파일들을 출력한다.

이때 a,b,c는 working directory에서 untracked 상태로 저장되어져 있다.

 

이제 a.txt파일을 commit 준비를 해보자 git add 명령어를 통해서 a.txt를 staging area로 이동하였다. 그 후 상태를 보면 새로운 a.txt 파일이 커밋 준비가 완료되었고 b,c는 아직 untracked 파일로 위치하는 것이 보여진다. 

이제 a는 staging area에 이동했고 나머지 파일은 아직 working directory에서 untracked상태에 위치하고 있다.

 

이제 모든 텍스트 파일을 staging area로 위치시키고 a.txt에 내 이름을 넣어서 수정해보자

그 후 결과의 상태를 나타내면 파일이 모두 staging area에 위치하지만 a.txt의 modified된 파일이 새로 working directory에 trakced 상태로 위치하게 된다.

따라서 staging area의 a.txt파일은 "hello world!"를 담고있고

working directory의 a.txt파일은 traking이 된 modified된 형태로 "hello world! Jaemin"을 담고있다.

다시 git add명령어를 사용하게 되면 modified된 파일이 staging area에서 초기화되어지게 된다.

 

git rm --cached 명령어를 사용하게 되면 staging 상태에 올라간 파일들을 다시 working directory로 가지고 내려올 수 있다. 방금 새로만든 파일로 실습을 진행하였기 때문에 이 때는 untrack된 상태로 복귀하게 된다. 

 

 

반응형

'Infra > GIT&GIT HUB' 카테고리의 다른 글

Git (6) : branch  (0) 2021.07.12
Git (5) : Reset , Revert 기초  (0) 2021.07.09
Git (4) : 버전관리  (0) 2021.07.08
Git (3) : git 기본 명령어  (0) 2021.06.30
Git (1) - 초기 설정  (0) 2021.06.29