Server And Configuration Management/git

개발 일기 : git Branch 생성하기 - 브랜치에 대해 알아보자

세기루민 2021. 11. 21. 13:37
728x90

이번 포스팅은 git branch에 대해서 알아보는 시간을 가져보겠습니다. 

사실 git을 자주 사용하는데 branch는 거이 사용을 안했어요..

그냥 브랜치를 사용안한 건 어처피 개발하면서 로컬에서 폴더를 구분지어 관리했기 때문이죠..

그렇지만 이번에 친구랑 같이 simple project를 하면서 이번 기회에 브랜치를 사용해야겠다는 생각이 들었답니다. 


1. git Branch를 사용해야 하는 이유


사실 이유라고 꼭 나눌 필요는 없습니다.

그렇지만 브랜치는 독립적으로 개발을 할 수 있는 환경을 주기 때문에 팀으로 개발할 때 자주 사용됩니다. 

팀 개발의 경우 같은 코드를 공유하여 개발하는데 코드를 수정하다보면 생각하지 못한 오류들을 만들어 내기도 하고 

서로 다른 버전으로 개발하는 경우도 종종 있는데 이런 문제를 최소화 하기 위한 것이 브랜치입니다. 

대부분의 형상관리 프로그램에서는 브랜치를 지원해주는데 특히 git에서 사용하는 이유는 간편함이라고 생각합니다.

git에서 브랜치를 만드신 분들이라면 알겠지만 브랜치를 만드는데 너무 쉽고

작업하다가 제 브런치와 main(master)를 구분하여 코드 관리를 할 수 있다는 장점이 큰거 같더라구요 

위의 그림처럼 hj라는 브랜치를 하나 생성했다고 가정할때

hj라는 브랜치에서 작업을 하면 header는 당연 hj라는 브랜치에 위치합니다. 

해당 브랜치에서 작업을 마치고 커밋을 한다고 하면 hj라는 branch에는 변경된 내용들이 올라가지만 main(master)에는 

내용이 올라가지 않습니다. 즉 브랜치가 커밋을 하더라도 main에 영향을 주지 않습니다.

그래서 main에 hj의 변경사항을 업데이트 해주기 위해서는 merge를 해야 합니다.

checkout을 하여 main으로 이동한 뒤 hj 브런치에 대한 내용들을 merge 해주면 main에도 hj의 변경사항이 업데이트

됩니다.

위와 같이 브랜치를 사용하는 것이 중요한 건 독립적으로 관리 및 작업을 할 수 있기 때문입니다. 

 2. git branch 생성하기

저는 우선 브랜치를 만들었습니다. 

제가 친구랑 같이 프로젝트하는 깃에 브랜치 추가하는 방법을 남겨놨는데

아래에 좀 더 자세하게 설명해보도록 하겠습니다.

1. 브랜치 생성 및 이동하기

  우선 자신이 clone한 프로젝트에 git bash로 브랜치를 생성합니다. 

  "git branch [브랜치 명]"

  이렇게 코드를 치면 아직까지 main의 위치에 있을 것입니다. 

  "git checkout [브랜치 명]"을 입력하여 자신이 만든 브랜치로 이동해줍니다. 

  사실 위의 방법을 하나로 묶으면 git checkout -b [브랜치 명]을 입력하면 해당 브랜치로 이동하면서 생성됩니다.

2. 브랜치 커밋하기 

  새로 생성된 브랜치에서 작업한 뒤 동일하게 add -> commit -> push를 진행하면 됩니다.

  단 push를 할 때 해당 브랜치 명을 꼭 넣어줘야 합니다. 

3. master에 merge하기 

  내 브런치를 커밋하더라도 main(master)는 변화가 없을 것입니다. 

  그렇기 때문에 main에도 동일하게 merge를 하여 변경사항을 올려줘야 합니다. 

  방법은 먼저 main으로 이동한 뒤 해당 브랜치 내용을 merge 해주면 됩니다.

   - git checkout main

   - git merge [브랜치명] or origin/[브랜치명]

   - 여기서 origin은 원격 저장소를 의미합니다.

4. push하여 main에 업데이트 해주기

merge를 하더라도 push를 하지 않으면 메인에 변경되지 않습니다. 

따라서 git push를 통해 메인에 변경된 사항들을 업데이트 해주면 됩니다.

 

3. 마무리

이번 포스팅에서는 git 브랜치에 대해서 다뤄봤습니다.

이번주부터 이제 파이썬 웹 개발에 대한 공부를 시작할 예정이라서 아직 미흡하지만 좀 더 열심히 해서 

좋은 포스팅으로 찾아오겠습니다.

추후의 포스팅들은 대부분 파이썬으로 웹 개발하는 과정을 다룰 예정입니다. 

다음엔 더 좋은 정보로 찾아오겠습니다.

728x90