Minwoo Dev.

[Github] Git branch, 브랜치 본문

Git & Github

[Github] Git branch, 브랜치

itisminu 2024. 1. 15. 11:08
728x90
반응형
SMALL

이 게시글은 인프런 강의 [직접 활용할 수 있는 Git과 Github - 기초부터 협업까지] 강의를 보고 개인공부 목적으로 기록한 게시글입니다.

 

브랜치 (branch)

브랜치는 Git에서 굉장히 중요한 개념이다.

브랜치는 '가지' 라는 의미를 가지고 있는데, 위 그림을 보면 나뭇가지처럼 뻗어나가는 모습을 가진 것을 확인할 수 있다.

 

개발을 할 때, 본래의 서비스가 실행되고 있는 코드를 함부로 변경하면 안된다.

그럴 때, 개발자들은 Git의 branch를 사용하여 본래의 코드를 복제하여 새로운 가지를 만든다.

 

이렇게 만든 Branch는 본래의 코드인 Main(혹은 master)에 아무 영향을 끼치지 않으며, 해당 기능을 만들고 정상적으로 작동하여 기능을 추가할 때, master 브랜치와 병합하는 방식으로 서비스를 업데이트한다.

 

 

Github에서 branch를 사용하는 법(명령어)

git branch  # 현재 브랜치 확인
git branch new-file # new-file이라는 이름의 브랜치 생성
git checkout new-file # new-file으로 브랜치 위치 변경

 

 

Github에서 branch를 사용하는 법(sourcetree)

 

위 화면에서 상단 탭의 '브랜치'를 선택한다.

 

위처럼 화면이 뜰텐데, 새 브랜치 이름을 입력하고 브랜치생성을 누른다.

왼쪽 탭에 브랜치가 생성된 것을 확인할 수 있다.

 

new-branch 왼쪽에 동그란 원이 있으면, sourcetree에서 현재 브랜치 위치가 new-branch라고 알려주는 것이다.

더블클릭을 하면 다른 브랜치로 간편하게 이동할 수 있다.

 

new-branch를 현재 브랜치로 설정해둔 상태에서 새파일을 추가해 보겠다.

 

 

그리고 나서 파일의 내용을 작성하고, 커밋을 해보겠다.

 

 

 

그럼 new-branch에 아까 작성한 커밋이 적용된 것을 알 수 있다.

 

그러고 나서 다시 master 브랜치로 돌아간다면, 

 

sourcetree에서 master 브랜치를 더블클릭하여 이동하는 순간 vscode의 파일이 사라진다.

master브랜치에는 아무 영향을 끼치지 않는다는 말이다.

 

 

 

브랜치 병합(merge)

브랜치를 master 브랜치와 병합하는 것을 말한다.

 

master 브랜치가 현재 브랜치가 되도록 먼저 설정한다.

 

그리고 커밋한 내용을 우클릭하여 병합을 선택한다.

 

 

확인을 누르면 병합이 완료된다.

 

 

위처럼 병합하는 데 내용이 겹치지 않는다면 문제가 없지만 내용이 겹치면 충돌이 일어난다.

 

 

 

우선 위처럼 ohyeah1, ohyeah2 라는 브랜치를 두 개 만들었다.

 

 

충돌을 발생시키기 위해 위처럼 다른 브랜치에 여러 출력들을 추가해주었다.

 

이제 master 브랜치에 ohyeah1, ohyeah2를 병합할 것이다.

 

master 브랜치와 ohyeah1 를 병합한다.

 

뒤이어 master 브랜치와 ohyeah2 브랜치를 병합한다.

 

 

그럼, 병합 충돌이 발생한다고 하면서 위와 같이 나타난다.

 

ohyeah1 과 ohyeah2 부분이 겹치는 부분이 있기때문에 자동으로 병합하지 못하기 때문이다.

 

따라서 개발자 혹은 사용자가 직접 코드를 수정해야한다.

 

직접 코드의 수정을 마치고, 다시 커밋을 한다.

 

아래처럼 그래프가 다시 합쳐진 것을 확인할 수 있다.

 

 

이상이다.

728x90
반응형
LIST