git_add를 왜?

떵떵·2022년 6월 15일
0

git

목록 보기
2/2

다 자동으로 하면 되지 왜 add를 해야할까?

임시 파일 생성됨에 따라 쓸모없는 파일이 버전에 섞이는 것을 방지하기 위해 add를 한다.

만약 프로젝트 개발에 너무 열중한 나머지 버전에 들어갈 필요없는 파일이 무자비하게 섞였다 했을때, 사용자는 버전에 넣고싶은 파일만 "add"를 통해 넣을 수 있다.

여러 파일 중 중요파일 add 시키기

t1.txt, t2.txt, t3.txt 가 있다.

$ git status

--Changes not staged for commit:
-- modified: f1.txt
-- modified: f2.txt
-- modified: f3.txt

t2.txt를 버전에 넣고싶다!

$ git add f2.txt

$ git status
-- Changes to be committed:
-- modified: f2.txt

-- Changes not staged for commit:
-- modified: f1.txt
-- modified: f3.txt

위의 출력결과 "add" 한 f2.txt는 commit에 포함되고 그 외 선택되지 않은 f1.txt, f3.txt는 commit에 포함되지 않으므로 추후에 버전을 확인하면 f2.txt만 포함되어 있다.

add를 하면 그 파일은 어떻게 될까?

add를 해주면 그 파일은 커밋 대기상태가 되고 git에서 커밋 대기상태를 "stage area"라고 한다.

$ git add f2.txt를 하면 f2.txt는 stage area에 올라간다.
이후 $ git commit을 하면 stage area 위에있는 파일들이 버전이 된다.

stage - repository

stage - 커밋 대기중인 파일들

repository - 버전이 되는 저장소

commit의 특성

위의 상황을 보면 "add"를 한 f2.txt는 commit에 포함되고 "add" 해주지 않은 f1.txt, f3.txt는 commit 후에 status를 해보면 여전히 Changes not staged for commit에 넘겨진다.

$ git status
-- Changes not staged for commit:
-- modified: f1.txt
-- modified: f3.txt

이를 통해 commit은 add를 통해 Change to be committed에 포함된 파일만을 업데이트 해준다는 것을 알 수 있다.

이는 "add"를 통해 커밋 대기 상태인 파일은 그대로 commit이 되고
"add"가 되지 않은 파일은 commit에 적용되지 않는다.

이러한 기능을 통해 git은 프로젝트 개발 중 원하는 파일만을 버전에 업데이트 하여 사용자가 branch tree를 꾸밀 수 있다.

0개의 댓글