[GitHub] 2. git 작업 트리란?
git에서 작업 흐름은 크게 2가지 흐름을 가지고 있습니다.
1. 지역저장소 → 원격저장소 (github)
- git init 명령어로 지역저장소로 지정 → 파일을 수정 → git add 명령어로 수정된 파일을 스테이징 영역으로 옮김 → git commit 명령어로 지역저장소에 저장
- git push 명령어로 원격저장소에 반영
2. 원격저장소 (github) → 지역 저장소
- git clone 명령어로 프로젝트 전체를 지역저장소에 내려받음
- git pull 명령어로 일부 변경 사항만 내려받음
** git init 명령어로 지역저장소를 지정하면 해당 폴더에 .git 숨김 폴더가 생성됩니다. 해당 폴더에는 파일, 브랜치, 설정 정보 등이 담겨있습니다. 만약 지역저장소를 관리하고 싶지 않다면 .git 폴더를 삭제하면 됩니다.
지역저장소 → 원격저장소 (github)를 잘 이해하기 위해서는 'git 작업 트리'라는 개념을 알아야 합니다. 작업 트리란 git이 추적하는 파일과 추적하지 않는 파일을 구분하고, 추적하는 파일들을 상태를 구분 짓는 영역입니다. git 작업 트리에는 크게 3가지로 나눕니다.
1. 작업 디렉토리 : 실제 작업 중인 파일들이 존재하는 영역
- git add 명령어
2. 스테이징 영역 : 작업 디렉터리에서 git이 추적하는 파일들을 식별하는 영역
- git commit 명령어
3. 지역저장소 : 스테이징 영역에서 추적한 파일들이 커밋으로 등록되는 영역 (= 스테이징 영역에서의 파일들이 하나의 변경 단위인 커밋으로 등록되는 과정)
** 모든 파일의 버전을 git으로 관리해야 하는 건 아닙니다. .gitignore 파일이 이용해 추적할 필요 없는 폴더 혹은 파일들을 무시하도록 만들 수 있습니다. (#은 주석기호입니다.)
** git에서 관리하는 파일은 추적하는 상태 (Tracked), 추적하지 않는 상태 (Untracked)로 나눕니다. 만약 작업 디렉터리에서 새로운 파일을 생성한다면 해당 파일은 추적하지 않은 상태입니다.
git status 명령어를 실행하면 상태를 확인할 수 있습니다.
git add 명령어로 커밋에 포함될 파일을 등록하면 결과가 바뀐 것을 알 수 있습니다.