[git] 브랜치(branch)만들고 합치기(merge) :: 개발/일상_Mr.lee

[git] 브랜치(branch)만들고 합치기(merge)

Posted by Mr.mandu.
2017. 10. 2. 16:52 개발/git

드디어 브랜치를 실습할 시간이 왔습니다.

이전에 학습했던 내용 첨부하겠습니다.


[개발/개발도구] - git update 받기(pull, fetch, merge)

[개발/개발도구] - git 저장소 만들고 커밋(commit) 하기

[개발/개발도구] - [git 설치] github 처음 사용기


현재 필자는 svn을 사용중에 있습니다.

svn 사용중에도 commit 이력을 확인 할 수 있습니다.

이에 저는 이렇게 생각했습니다.

'branch? 뭐 대충 commit 이력 남아있겠지' 라고 말입니다.

하지만 이번에 실습을 하면서

왜 git의 branch 인가!를 크게 느꼈습니다.

말하자면 신세계를 보았습니다.


git의 branch의 개념이 뭐다! 라고 정확히 말할 수는 없습니다.

저도 처음 배우기때문에....

하지만, branch를 이용하여 이전의 코드와는 상관없이

독립적으로 새롭게 개발 할 수 있다는 것은 알고있습니다.


이제 git의 branch를 만들고 테스트 해보겠습니다.



branch 생성 명령어

git branch '브랜치 이름'

ex) git branch testing



branch를 생성하고 

현재 브런치를 확인하기 위하여 다음의 명령어를 쳤습니다.


현재 브런치 확인

git log --decorate


위에 보시면 HEAD가 master를 가르키고 있는거 보이시죠?

branch는 만들었지만 현재 위치는 아직 master 입니다.

HEAD는 현재 위치를 가르킵니다.

HEAD는 특수한 포인터라는 점이라는 것을 알뿐... 

원리는 아직 파악하지 못하였습니다.



현재 브런치 확인(간단)

git log --oneline --decorate


위의 명령어를 활용하면 간단히 나오게 됩니다.

앞에 'e2fa2d8' 이라는 주소?값이 있어

HEAD가 포인터라는 개념이 먼가 이해되는 느낌을 받았습니다.



이제 새로운 branch로 이동해 작업을 해보겠습니다.


branch 이동

git checkout testing




그리고 현재 있는 파일에 새로운 내용을 입력하였습니다.

그리고 commit을 하였습니다.



다시 

git log --oneline --decorate를 이용해 이력을 확인해보니

testing 브런치의 위치가 master보다 한칸 이동한 것을 확인 할 수 있었습니다.



이번엔 master로 이동하여 파일을 확인해 보았습니다.

branch를 이동해서 파일을 확인해 보니

testing branch에서 수정한 내용이 없었습니다.

여기서 먼가 머리가 팅~~~~~~~~


아 이전에 소스와 다른 branch의 소스의 이동이 참 편하구나!!






뭐...제가 느낀건 중요하지 않으니까 이쯤에서 해두고...

master에서 다시 파일을 작업한 뒤에 commit을 하였습니다.



그리고 master에서 testing의 변경된 내용을 merge 해보겠습니다.


merge

git mergee '브런치'

ex) git merge testing


이렇게 한뒤

push origin master 까지하면!

실제 웹저장소인 github까지 파일들이 변경된 내용을

확인 할 수 있습니다.


앞으로 branch 끼리 충돌이 나면 어떻게 되는지

또 이클립스 환경은 어떻게 꾸리는지 연습해 나가겠습니다.

감사합니다.