본문 바로가기
[Useful tech]/[GIT]

GitHub - Branch 생성 및 관리

by hi_kmin6 2020. 3. 3.

 

이번 글에서는 "Branch"라는 것에 대해서 알아보겠습니다.

 

 

# Branch 구경하기

 

일단 브랜치라는 것을 github 어디서 볼 수 있는지 확인해 보도록 하겠습니다.

 

GitHub Repository 내의 branch

branch라는 것은 첫 번째로 저희가 만든 원격 저장소에서

위의 사진과 같이 Commit 아래 Select Box에서 확인할 수 있습니다.

일단 저희는 기본 branch인 master라는 이름의 branch만이 존재하는 걸 알 수 있습니다.

 

 

다음으로 gitbash 또는 cmd 창을 이용해서 확인 해보겠습니다.

로컬 저장소의 경로로 이동해서 다음의 코드를 입력해주시면 됩니다.

 

 

git branch

 

 

branch 확인하기


git bash에서 branch 확인

git branch를 입력하시면 현재 존재하고 있는 branch들의 목록이 결과로 보입니다.

현재 위의 사진처럼 * master라는 결과를 볼 수 있습니다.

* 이 나타내는 것은 현재 선택된 branch입니다.

로컬 저장소에서도 마찬가지로 master branch 만이 확인 가능했습니다.

 

 

 

 

# Branch 란?

 

Branch란 단어의 뜻을 살펴보면 다음과 같습니다.

  1. 나뭇가지

  2. 지사, 분점

  3. 분과, 분야

    등...

이렇게 주로 나뉘어 있는 것을 지칭하고 있습니다.

 

깃에서도 마찬가지로 나뉜 상태, 분기란 의미로 사용되고 있습니다.

동일한 코드를 복사한 뒤 독립적인 개발을 진행하는 것을 브랜치라고 정의합니다.

 

 

GIt Brach예시

 

위의 사진은 branch를 간단히 표현해본 것입니다.

 

Branch는 웹서비스를 운영한다는 가정하에 설명을 드리자면,

현재 작동하고 있는 웹페이지에 대해서 전체적인 화면 구성을 바꾼다거나 테마를 바꾸는 작업을 진행해야 하고, 갑작스러운 문제가 생겨 그 문제를 해결해야 하는 상황이 발생했습니다.

화면을 재구성하는 작업과, 긴급한 보수 작업 이 둘을 하나의 프로젝트 파일을 이용하여 동시에 진행하고,

commit과 push를 진행한다면 반드시 충돌이 발생할 것입니다.

 

하지만 이런 문제를 branch가 해결해줄 것입니다.

branch를 이용하면 현시점의 프로젝트 파일을 복제하여 독립적으로 서로 영향을 주지 않고 프로젝트를 진행하고 작업이 마무리되면 기존의 master 브랜치로 병합을 하여 그 내용을 적용해 서비스를 제공할 수 있습니다.

 

 

 

# Branch 만들기

 

branch를 만들기 전 저의 저장소의 상태를 확인하고 가겠습니다.

 

저장소의 최신 상태

 

2개의 text파일과 1개의 MarkDown 파일이 있습니다. 각각의 내용은 앞선 글에서 변화한 것이 없으므로 따로 확인하지 않겠습니다.

 

 

 

이제 Branch를 만들어보겠습니다. Branch를 만드는 방법은 어렵지 않습니다.

cmd 혹은 git bash를 본인의 로컬 저장소 경로에서 실행시켜주세요.

 

그 후 다음의 코드를 입력해주세요. {branchName}은 본인이 원하는 이름으로 입력해주세요.

 

git branch {branchName}

 

그리고 branch가 잘 만들어졌는지 확인하기 위해서 처음에 해본 'git branch'를 다시 입력해 확인해보겠습니다.

 

branch 생성과 선택

 

저는 testBranch1이라는 이름의 Branch를 만들었습니다.

 

위의 git branch에 따른 결과를 보시면 아시겠지만 현재 저희가 있는 branch의 위치는 master입니다.

*이 있고, 초록색으로 표시된 것을 보면 아실 수 있습니다.

 

branch를 선택하는 것은 다음의 코드를 입력해주시면 됩니다. 마찬가지로 {branchName}에는 자신이 생성한 branch의 이름을 써주시면 됩니다.

 

git checkout {branchName}

 

 

branch 선택

 

 

위의 코드를 입력하면 "Switched to branch '{branchName}'"이 나오는 것을 볼 수 있고,

branch의 위치를 확인해보면 생성한 branch에 와있는 것을 알 수 있습니다.

 

 

 

# Branch에서 commit

 

branch를 전환했으니 파일에 변화를 주겠습니다.

 

저는 Good.txt 파일에 "Writing on testBranch1_good!"이라고 추가해보겠습니다.

 

 

branch에서 수정된 파일

 

 

이제는 commit을 한번 해보겠습니다.

 

더보기

Branch별 파일의 상태

git bash 또는 cmd를 통해 branch를 바꾸고 파일을 열어보시면 해당 branch의 상태에 따라 파일을 보여줍니다. Git이 파일을 관리하고 있기에 가능한 것입니다.

 

branch에서 commit 진행

 

 

# 원격 저장소에 branch 등록하기

 

commit을 해봤으니 이제 브랜치를 원격 저장소에 push 해보겠습니다.

다음의 코드를 입력해주세요.

 

git push origin {branchName}

 

 

branch remote 저장소에 push

 

GitHub에서 Branches를 눌러보시면 master아래에 생성한 branch가 업로드된 것을 볼 수 있습니다.

 

 

원격 저장소의 branch

 

master와 branch의 Good.txt를 보면 내용이 다름을 알 수 있습니다.

 

 

# Merge(병합) 진행하기

 

그럼 이제 다시 master와 branch를 합치는 merge를 진행해 보겠습니다.

merge는 branch가 master에 합쳐지는 과정이므로 checkout을 통해 master브랜치로 이동해서 진행하겠습니다.

 

master branch로 이동 후에는 다음의 코드를 입력해주세요.

 

git merge {branchName}

 

 

merge 진행

 

 

merge를 진행하는 모습을 볼 수 있으며, Good.txt를 열어보시면 branch에서 했던 작업이 반영된 것을 확인하실 수 있습니다.

 

로컬에서 병합을 해줬으니 이를 원격 저장소에 적용하기 위해서 push 해보겠습니다.

 

 

merge 후 push

 

 

merge 후 원격 저장소

 

GitHub의 마스터에서도 branch에서 commit 한 모습을 볼 수 있으니 merge가 잘 진행됐음을 알 수 있습니다.

 

 

# Branch 삭제하기

merge가 된 branch는 작업이 끝났으니 지워보도록 하겠습니다.

 

branch가 잘못 작성된 경우가 아닐 경우, 실제 현장에선 프로젝트 진행 중에는 작업이 끝나더라도 branch를 남겨두는 것이 일반적이라고 합니다.

 

일단 저는 git 공부를 하는 것이니 지워보도록 하겠습니다.

다음의 코드를 master branch에서 입력해보겠습니다.

 

git branch -d {branchName}

 

 

branch를 삭제한 모습

 

branch가 삭제되었음을 확인할 수 있습니다.

 

원격 저장소의 branch도 삭제해보겠습니다.

다음의 코드를 입력해주시면 됩니다.

 

git push origin :{branchName}

 

원격 저장소의 branch 삭제

 

 

원격저장소에서 branch 삭제된 모습

 

GitHub에서도 branch를 확인해보시면 merge 한 작업은 남고, 삭제된 모습을 볼 수 있습니다.

 

 

 

이번 글은 간단한 상황 속 branch 생성, merge, 삭제를 진행해봤습니다.

추후에는 merge를 할 때 서로 다른 branch에서 commit과 push를 같은 부분에 진행하여 충돌이 일어나,

이를 해결하고 merge 하는 과정을 다뤄보겠습니다.

 

감사합니다.

 

 

 


# 참고 자료

Git 공식 문서 https://git-scm.com/book/en/v2

 

Git - Book

 

git-scm.com

 

탁이로그 https://tagilog.tistory.com/377

 

[GITHUB 사용법] 왕초보를 위한 깃허브사용법 (Git사용법)

코딩할 때 뺄래야 뺄 수 없는 서비스 중 하나가 GitHub (깃허브) 입니다. 현역 프로그래머에게는 너무나 친숙한 서비스지만, 코딩 초보자에게는 생소할 수도 있습니다. 그래서 이번에는 코딩 초보자도 바로 GitHub..

tagilog.tistory.com

 

 

backlog https://backlog.com/git-tutorial/kr/stepup/stepup1_1.html

 

브랜치란? 【브랜치 (Branch)】 | 누구나 쉽게 이해할 수 있는 Git 입문~버전 관리를 완벽하게 이용해보자~ | Backlog

브랜치란? 【브랜치 (Branch)】 | 누구나 쉽게 알 수 있는 Git에 입문하신 것을 환영합니다. Git을 사용해 버전 관리를 할 수 있도록 함께 공부해봅시다!

backlog.com

 

 

ZeroCho https://www.zerocho.com/category/Git/post/582342a73fbde700178771f5

 

(Git) Git 브랜치(Branch) 관리

안녕하세요. 이번 시간에는 대망의 Git 브랜치(Branch)에 대해 알아보겠습니다. 사실 앞부분은 기본 중에 기본이고요. 지금부터 할 내용이 주요 부분입니다. 다음 두 상황을 가정해보죠. 1) 혼자 작업할 때: 현재 홈페이지를 만들고 있다가 실시간 알림 기능을 추가하

www.zerocho.com

 


작성 록

2020/03/03

 

branch에 관한 것을 이전 글의 바로 뒤에 공부하고 써보려 했지만, 일주일이나 걸렸습니다.

갑자기 공부가 하기 싫어지고 너무 게을러져 버렸습니다. 

정신 바로 잡고 공부하고 하루하루 딱 할 양을 정해 놓고 집중해서 끝내도록 노력해야겠습니다.