본문 바로가기

깃(git) 시작하기 4. stage area 이해하기 (add를 통한 commit 대기상태 )

깃은

버전관리할 파일을 add를 통해 'stage area'란 곳에 올리게 되고, commit을 통해 버전에 포함시킨다.

이 stage area에 대해 알아보자.



우선 현재 상황 (1~3번까지의 상황)


f1.txt 파일을 v.1이란 버전으로 관리 하고 있다.

f1.txt 파일내용 : f1.txt ver.1



복습하기


f2.txt를 만들어 add 후 commit으로 새 버전을 만들어 보자.



위처럼 f2.txt를 만들고 명령어 


'git status'를 쳐보면


Untracked files : f2.txt


추적이 안되는 파일 f2.txt를 확인 할 수 있다.



'git add f2.txt'로 git에 추가한다.



'git add f2.txt'

f2.txt 파일을 등록 후,


'git status'

를 입력해 보면 새롭게 등록된 것(new file)을 확인 할 수 있다.




'git commit'으로 버전 메시지를 수정한다.



'i'

를 입력해 insert 모드로 전환 후, 'v.2'를 입력한다.

f2.txt가 새로운 파일로 들어왔다는 것을 확인 할 수 있다.

작성 후, 'esc'키로 insert 모드를 종료한다.



':wq'

vim(commit)을 저장 후 종료한다.



위 처럼 v.2로 바뀐 것을 볼 수 있다.



'git log'

깃의 로그를 확인 해 보자.



여기까지는 복습 겸, 파일저장/버전수정하는 방법이었다.




이제는 파일 안의 내용을 '수정 후'에 'add', 'commit'을 통해 새로운 버전을 만들어보자.


단! 파일 f1.txt 만 add해서 commit 해보자.


파일 내용 수정


f1.txt의 수정내용 : f1.txt ver.2

f2.txt의 수정내용 : f2.txt ver.1


'git status'를 입력해 보자. 



'git status'

위 처럼 f1,txt, f2.txt 파일이 수정되었다. 그리고 commit 되지 않았다. 라고 빨간색으로 표시된다.





여기서 중요! 

 

add'를 통해 골라서 'commit' 할 수 있다.

: 만약,  많은 작업(change)이 있는데 commit할 타이밍을 놓쳤다면 (이런 경우가 많음!) 'commit'할 파일 만 골라 'add' 후 'commit'할 수 있다.



f1.txt 만 add 후, commit 해보자



git add f1.txt

f1.txt를 깃에 추가했다.


git status

깃의 현황을 보면, add를 통해 stage area에 올라가게 된 f1은 초록색으로 

아직 저장소에 있지만, stage area에 올라가지 않은 f2는 아직 빨간색인걸 볼 수 있다.


'git commit'

-> 'i' -> v.3 ->'esc' -> ':wq'


'git commit'을 통해 버전메세지를 v.3로 수정 후 저장, 종료한다.




'git log'


git log를 통해서 확인해 보면 v.3로 제대로 저장된 것을 볼 수 있다.





다시 'git status'


저장소에서 아직 add 되지않은 f2.txt만 빨간 글씨로 나온다.



git add를 하면 그 파일은 'commit 대기 상태'에 들어가게 된다.

git commit은 'commit 대기 상태'에 있는 파일에 대해서만 그 버전에 포함시킨다.


git에서는 이 'commit 대기상태'를 'stage area'라고 부른다.





정리


'git commit'은 'git add'를 통해 'stage area'에 올라와 있는 파일에 대해서만 버전에 올린다.

즉, add를 통해 버전에 올릴 수 있는 파일을 선택해서 올릴 수 있다.


git status는 '수정된'change 파일 들의 상태를 알 수 있다.

(add로 stage area에 올라가 있는 파일 : 초록색 / add로 stage area에 올라가지 않은 파일 : 빨간색)