스테이지에 등록


깃에서 등록이란 정확히 무엇을 의미할까요?
등록이란 워킹 디렉터리에 있는 파일을 스테이지(stage) 영역으로 복사하는 것을 의미합니다.


기록변경


스테이지 등록에서 복사는 실제 파일을 복사하는 것을 의미하지는 않습니다. 깃 내부에서 논리적인 기록을 변경하는 과정일 뿐입니다.
복사라고 표현한 것은 이해하기 쉽게 풀어 쓴 것입니다.

워킹 디렉터리에 추가된 모든 파일을 커밋할 때는 반드시 이 과정을 거쳐야 합니다.
그래야 깃에서 버전 이력을 관리할 수 있습니다. 스테이지에 등록되지 않은 unstage 상태의 파일들은 커밋할 수 없습니다.

깃은 커밋하기 전에 파일들이 stage 상태인지 unstage 상태인지를 판단합니다.
스테이지 영역으로 등록된 파일들은 tracked 상태로 자동 변경됩니다.


명령어로 등록: add 명령어


지금까지의 실습은 커밋 명령어를 실행하기 이전의 중간 단계입니다.
깃의 add 명령어는 워킹 디렉터리의 파일을 스테이지 영역으로 등록합니다.

$ git add 파일이름

깃은 안정적인 커밋을 할 수 있도록 add 명령어를 기준으로 이전이후 단계를 구별합니다.


스테이지 등록 실습


터미널에서는 다음 형태의 명령어를 입력합니다.
index.htm 파일을 등록합시다.

☜ 스테이지 등록

infoh@hojin MINGW64 /e/gitstudy04 (master)
$ git add index.htm 

index.htm 파일을 등록하는 과정은 다음과 같이 표현할 수 있습니다.

스테이지 영역에 등록 스테이지_영역에_등록


스테이지 상태


add 명령어를 실행하면 지정한 파일은 스테이지 영역으로 등록됩니다.
스테이지 영역에 파일이 등록되면 파일은 tracked 상태로 변경됩니다.


전체파일 등록하기


add 명령어 뒤에 파일명을 지정하면, 지정된 파일만 등록됩니다. 만일 등록해야 하는 파일이 많다면, 스테이지 등록작업이 매우 귀찬을 것입니다.

파일 이름 대신 점(.)을 이용하면 전체 파일과 폴더를 모두 등록할 수 있습니다.
점(.)은 리눅스와 같은 운영 체제에서 현재 디렉터리를 의미하는 기호입니다.

$ git add .


선택한 파일만 커밋으로 등록하기


워킹 디렉터리에 생성된 모든 파일을 스테이지 영역에 추가할 필요는 없습니다.
필요한 파일만 스테이지 영역에 등록하여 이력을 추적하면 됩니다.

스테이지 영역에 등록하지 않은 파일은 커밋 작업에 포함되지 않습니다. 등록 명령으로 파일들의 이력을 커밋 기록에 포함할지 여부를 결정할 수 있습니다.

정보 이력을 추적하고 싶은 파일만 스테이지 영역에 추가합니다.


빈폴더


빈 폴더는 스테이지 영역에 등록할 수 없습니다.
폴더 안에 파일이 하나 이상 있어야 등록이 가능합니다.