본문으로 바로가기

git branch 새로 생성해서 commit하고 master branch에 merge하기







git 쓰는데 맨날 master branch하나만 쓰다가 이번에 조직 개편이 되면서 branch를 따서 작업을 앞으로 해야 할 것 같아서 정리하는김에 이 글을 쓴다.


branch(브랜치)란 뭐냐면 팀 작업을 할 때 내가 작업 하거나 다른 팀원들이 작업한게 전체에 영향을 주는 경우가 많기 때문에 브랜치를 따서 작업 하면 해당 브랜치에 commit을 해도 변경 내용이 master브랜치에 영향을 주지 않기 때문에 내가 작업중인데 commit한 내용이나 동료가 작업중인데 commit한 내용이 전체에 영향을 주지 않도록 하는 기능이다.


git local repository생성하는 것 부터 master branch를 생성하고 생성한 branch에 commit하고 merge까지 하는걸 해보겠다.


환경은 윈도우이고 툴은 source tree를 썼다.


순서는 아래와 같다.

1.local repository 생성

2.hello.txt commit

3.branch hello_01 생성

4.branch hello_01 삭제

5.branch bye_01 생성

6.branch bye_01에 commit

7.branch bye_01을 master에 머지

8.머지후 삭제



좌측 상단 '복제/생성'을 누른다.


새 창이 뜨면 상단 세번째 탭인 '새 저장소 생성'을 선택하고

local repository 생성할 위치를 지정하기 위해 '목적지 경로'를 누른다.



나는 c:\git\git_branch_practice_01 이라는 폴더를 생성했다.

생성했으면 '폴더 선택'을 누른다.


목적지 경로가 생성한 폴더로 잘 선택 되었는지 확인 하고 '생성'을 누른다.


그러면 로컬 리포지토리가 생성 되는데 잘 생성 되었으면 이렇게 좌측 상단에 지정한 이름으로 탭이 생긴다.


아까 만들었던 폴더가 git local repository가 되었으니 여기에 파일을 만들어보자.

hello.txt라고 파일을 생성한다.


파일을 열어서 내용을 적당히 적어준다.

나는 'Hello my name is kyeongrok.kim.' 이라고 적었다.


소스트리로 돌아와보면 이렇게 파일이 추적되고 있다.

위에가 스테이지고, 아래 물음표 아이콘에 hello.txt가 있는 곳이 변경사항이 추적되는 부분이다.


가운데쯤에 'Stage All'을 누른다.


그러면 stage로 방금 생성하고 내용 변경한 파일이 stage로 올라간다.

하단에 뭐 쓰는게 있는데 commit message(커밋 메세지)이다.

나는 'first commit'이라고 적었다.

적었으면 '커밋'을 누른다.


그리고 하단에 '로그/히스토리'를 선택하면 commit이 된것을 확인 할 수 있다.

이제 branch(브랜치)를 생성해보자.


상단에 '브랜치'아이콘을 누른다.



여기에 새 브랜치 이름을 적어주고 '브랜치생성'을 누르면 브랜치가 생성된다.

나는 'hello_01'이라는 이름으로 했다. 이름 적었으면 '브랜치생성'을 누른다.



그러면 이렇게 좌측에 'hello_01'이라고 브랜치가 생성되는데 이 부분을 'branch tree(브랜치 트리)'라고 부르겠다.

앞에 동그라미 아이콘이 표시된게 보이면 잘 한 것이다.



이건 확대한 화면이다. branch 'hello_01' 앞에 동그라미 아이콘이 있는게 보인다.

이것이 의미하는 것은 현재 브랜치가 'hello_01'로 되어 있다는 뜻이다.


브랜치를 만들고 어찌 해야 하는지 이게 잘 작동을 하는건지 전체에 영향을 주지는 않는지 걱정이 되는 경우가 많다.

그래서 지우는 법도 알아보겠다.

좌측 브랜치 트리에서 방금 생성한 'hello_01'에 마우스 우측 클릭을 하고 'hello_01 삭제'를 누르면 해당 브랜치가 지워진다.

한번 시도 해보자.


여기에서 'OK'를 누르면 된다.


그런데 안지워진다. 왜냐하면 현재 branch가 'hello_01'로 되어있기 때문이다.

master barnch로 바꾸고(checkout) 지워야 한다.

바꿔보자.

좌측 브랜치 트리에서 'master'를 더블 클릭 한다.


그러면 이렇게 동그라미 아이콘이 master앞으로 이동한다.

이제 'hello_01'을 지워보자.


브랜치 트리에서 'hello_01'삭제를 누르면 나오는 대화상자에서 'OK'를누른다.


그러면 지워진다. 좌측 브랜치 트리에서 'hello_01'브랜치가 보이지 않는다.


그럼 이제 새로 브랜치를 만들고 파일 생성 및 수정하고 commit까지 해보자.


상단에 '브랜치'를 누른다.


브랜치 이름을 적당히 넣고 브랜치를 만든다.

나는 'bye_01'이라고 했다.


그러면 이렇게 'bye_01'브랜치가 생성된걸 볼 수 있다.

이제 파일을 생성하고 commit을 해보자.


로컬 리포지토리 폴더인 'c:\git\git_branch_practice'로 이동해서 bye.txt를 만든다.

그리고 내용을 입력하고 저장한다.

나는 'This is bye.'라고 쓰고 저장했다.


그리고 source tree로 오면 bye.txt가 생성 되어 있다.

'Stage All'을 클릭하서 stage로 올리고 commit한다.

커밋 메세지 쓰고 우측 하단 '커밋'을 누르면 된다.


그러면 이렇게 bye_01에 'bye.txt'가 commit된 것을 확인 할 수 있다.

커밋이 잘 되었는지 확인 해보기 위해 아까 만든 git_branch_practice_01폴더로 가보자.


그러면 hello.txt와 bye.txt가 보인다.


브랜치를 master로 이동해보자.


그러면 hello.txt 하나 밖에 없다.

내가 수정한게 없어진게 아니고 branch 'bye_01'에만 존재한다.


그러면 작업이 완료 되었다고 생각하고 내가 개발한 소스 코드를 전체에 반영 하기 위해 master branch에 'merge(머지)'를 해보자.


'master'브랜치를 선택한다.


프로젝트 폴더로 가면 'hello.txt'만 있다.



현재 브랜치는 master 브랜치다.

좌측 브랜치 트리에서

branch 'bye_01'을 우측 클릭 하고 '현재 브랜치로 bye_01 병합'을 클릭한다.



'bye_01'을 현재 분기로 병합하시겠습니까? 메세지를 잘 확인 한다.

다른 브랜치를 다른 브랜치에 머지하면 안되기 때문.

확인 했으면 'OK'누른다.


병합이 되었다.

어떻게 알 수 있냐면 브랜치가 'master'브랜치로 이동 하였고, commit message앞에 붙은 뱃지를 보면 알 수 있다.

위에 병합하기 전에는 'master'라는 파란색 뱃지가 'first commit'앞에 있었는데 지금은 'commit to bye'에 붙어있다.


프로젝트 폴더도 확인 해보자.

현재 브랜치가 master 브랜치 인데 아까는 hello.txt파일 한개만 있었는데 지금은 hello.txt와 bye.txt두개가 있다.



병합이 완료 되었으니 기존 작업하던 브랜치는 삭제 해준다.

우클릭 'bye_01'삭제


OK누른다.


그리고 프로젝트 폴더를 확인 해보면 hello.txt, bye.txt두개가 있는 것을 확인 할 수 있다.



end.






댓글을 달아 주세요