상세 컨텐츠

본문 제목

git 의 branch 와 tag 그리고 head 의 이해

Study/GIT

by 휀스 2012. 11. 17. 15:53

본문


git 의 branch 와 tag 그리고 head 의 이해


git 사용중 branch 를 만들고 tag 를 긋고 head 를 이동한다는 얘기를 많이 듣는다.


그런데 


git checkout 명령어는


git checkout some-branch

git checkout some-tag


둘다 동작을 한다. 책을 읽어보면 branch 나 tag 나 HEAD 파일의 정보를 수정한다는 것을 알 수 있다. 하지만 쉽게 이해가 가지 않는 사람이 있다. 나같은...


난 처음엔 특정 branch 에 tag를 긋고 tag 로 이동하면 해당 branch로 갈 수 있을것이라 생각했다. 그런데 아니네... ^^


그래서 여기다 정리를 한다. 정리를 해놔야 확실히 내것이 되니까. ^^


branch 는 말 그대로 가지를 뻗어나간다고 생각하면 된다. 이건 쉽게 이해가 갔다.


tag 를 긋는다는건?

소스의 수정 history 중 어느 부분에 표시를 해 놓는 것이다. 어느 branch에서 나온것 인지는 표시가 없다.




git checkout sometag 명령어로 특정 sometag 로 이동을 했다고 하자.

그럼 여기서 소스를 수정할 수 있을까?

안된다. 우리가 소스를 수정할 수 있는 곳은 각 branch 의 가장 최신 소스의 HEAD 일때 가능하다.

history의 중간을 수정하면 history 관리가 안되니 당연한거다.


tag 를 긋는다는건 특정 시점의 표시를 해서 그곳으로 쉽게 이동할 수 있는 것이지 branch의 개념이 아닌것이였다.


그래서 소스 확인은 tag 이동으로 하고 소스의 수정은 branch 로 이동해서 한다.


git branch 명령을 실행해 보면 알 수 있다.


git checkout some-tag 로 이동하면


git branch 했을때 현재 branch 가 표시되지 않는다.


OK?




관련글 더보기