WEB study/Git, GitLab

Git 브랜치의 이해 (3) - Git 브랜치 이동 및 이슈 발생, 실습

pink_salt 2022. 1. 20. 00:55
728x90

안녕하세요~ 항상 나아가는 개발자 pink_salt 입니다!

코드프레소 Java 웹 개발 체험단 활동을 하고 있습니다.

이번엔 git 브랜치 이동과 이슈가 발생했을 떄 어떻게 하는지 알아보는 시간을 갖겠습니다.

이번엔 '실무자가 알려주는 Git 활용한 프로젝트 관리'의 Git 브랜치의 이해 강의를 듣고 공부한 내용을 정리하여 포스팅을 진행하겠습니다.


이전 게시물에서 feature-login이라는 브랜치를 git branch feature-login이라는 명령어를 통해 만들었습니다.

이제 feature-login으로 브랜치를 이동해보겠습니다.

브랜치 이동

git checkout feature-login(이동할 브랜치명)

브랜치 이동

git checkout (브랜치명)을 통해서 현재 작업 중인 master branch에서 feature-login 브랜치로 바뀐 것을 알 수 있습니다.

HEAD는 현재 작업중인 브랜치를 가리킵니다.

그래서 HEAD -> feature-login으로 된 것을 볼 수 있습니다.

그림으로 표현하자면 이렇게 변한 것을 알 수 있습니다.

[실습] 브랜치 이동 후 커밋 생성

일단 브랜치를 이동한 상태에서 LoginService.java라는 파일을 만들어서

"write login code 1"을 작성합니다.

작성할 때는 i를 먼저 입력하여 입력 상태로 만든 후 입력해야합니다.

그리고 마지막 코드를 작성하고 저장하고 나갈 때는 Esc + :wq 누르면 됩니다.

그리고 git add를 통해서 스테이징 영역에 올려 놓습니다.

git commit 작업을 진행을 할 것인데 커밋 메시지와 함께 진행할 것입니다.

커밋 완료 후 git log를 통해 커밋 히스토리를 보겠습니다.

마지막 3번째 커밋은 feature-login 브랜치에서 진행된 것을 확인할 수 있습니다.

그림으로 표현하자면 밑에와 같습니다.

master 브랜치로 이동

다시 master 브랜치로 이동하기 위해서는 위에서 쓴 것과 같이 git checkout을 사용하면 됩니다.

git checkout master

이러면 다시 master 브랜치로 이동하게 됩니다.

git log로 확인하면 LoginService.java가 보이지 않는 것을 확인할 수 있습니다.

 

브랜치가 master로 바뀌었기 때문에 feature-login 브랜치에서 한 커밋은 보이지 않는 것이 맞습니다.

밑의 그림과 같이 HEAD가 master를 다시 가리키는 것을 알 수 있습니다.

 

이제 master 브랜치에서 4번째 커밋을 진행해보겠습니다.

코드 추가
git add
commit 메시지

이러면 3번째 feature-login 브랜치에서 한 커밋은 안보이고 4번째 커밋까지 포함해서 보이게 됩니다.

그림으로 표현하면 아래와 같습니다.

 

모든 브랜치 history 확인하려면?

git log --all --graph

all 옵션은 모든 브랜치를 확인하고자 하는 것이고 
graph 옵션은 그래프로 어떻게 분기되고 있는지 확인할 수 있습니다.


개발 중 이슈가 발생하면?

issue 발생

브랜치 전략은 기업, 조직마다 다르기 때문에 일단 강의의 실습에 맞추어 진행하겠습니다.

  • 일단 issue 브랜치를 생성하겠습니다.
    • 이 때, 브랜치를 생성하고 바로 브랜치를 이동할 수 있는 명령어를 사용하겠습니다.
    • git checkout -b issue
    • git checkout -b 브랜치명을 작성하면 브랜치가 생성되고 바로 이동됩니다.

브랜치 생성 및 이동

[실습] issue 브랜치에서 커밋을 생성합니다.

  • vi MainService.java에 "fix issue-number 1"을 작성합니다.
  • git add MainService.java를 진행합니다.
  • git commit -m "Commit 5 on issue branch"
  • git log로 확인

 

그림으로 표현하면 밑에 그림과 같습니다. 지금 HEAD는 issue 브랜치를 가리키고 있습니다.

 


다음 게시물에서는 브랜치 병합 및 충돌 해결에 대해 공부하고 정리해서 다시 찾아뵙겠습니다!

열심히 나아가는 개발자 이었습니다.

go go!

코드프레소 URL: https://www.codepresso.kr/

 

프리미엄 IT 교육 서비스 - 코드프레소

 

www.codepresso.kr

 

728x90
반응형