본문 바로가기
git

2. Git branch, merge

by 장인이 2020. 12. 20.

지난 개시글에 이어서 이번에는 git branch 위주로 설명하고자 합니다.

목차

· git branch란?

· git merge

 - fast-foward

 - 갈라지는 branch

   - merge conflict(충돌) 해결

 

1. git branch란?

 git branch란, 독립적으로 어떤 작업을 진행하기 위한 개념을 말합니다. 각각의 branch는 다른 branch의 영향을 받지 않으며, 이를 활용하여 협업, 백업, 테스트 등 다양하게 활용할 수 있습니다.

 

<여러 branch들>

 

git branch는 크게 두 종류로 나누어지는데,

 

1. 메인 branch

: 배포할 수준인 안정적인 branch

2. 토픽 branch

: 기능 추가 또는 버그 수정과 같은 단위 작업을 위한 branch

 

<코드 정리>

git branch 브랜치이름

: 브랜치를 생성한다.

 

git branch

: 현재 브랜치 목록위치하고있는 브랜치를 알 수 있다.

 

git checkout 브랜치이름

: 해당 브랜치로 전환한다.

: checkout 뒤에 git log으로 확인한 snapshot값을 입력 시, 과거 파일 내용을 확인할 수 있음

 

3. git merge

 추가로 생성한 branch를 a라고 하면, a의 작업물을 master로 적용하는 것을 git merge라고 합니다. 여기서는 크게 기존의 branch에서 추가적인 작업을 한 이후 적용하는 경우와, 각각의 branch에서 같은 파일의 내용을 다르게 수정한 후, 이를 적용하는 경우가 있습니다.

 

 

3-1. fast forward

 a에서 작업하던 내용을 master와 적용하고 싶을 때(master에서 branch를 따와 추가적인 작업만 한 경우) 사용하게 됩니다. 이를 fast forward라고 합니다.

 

<코드 정리>

git merge 브랜치이름

: 현재 속해있는 브랜치에 해당 브랜치이름의 내용을 적용

: ex) master 브랜치에서 git merge a 입력 시 a브랜치 내용이 master로 적용됨

 

 

3-2. 갈라지는 branch

 각각의 branch에서 같은 파일의 내용을 다르게 수정할 경우, 이를 후에 적용하는 과정입니다. 여기서 각각의branch는 서로 영향을 받지 않으므로, 여러 작업을 동시에 진행할 수 있다는 장점이 있습니다.

 

<코드 정리>

git log --graph --all

: commit graph를 확인할 수 있다.

: --pretty=oneline 옵션을 추가하면 더 깔끔하게 볼 수 있음

 

git merge 브랜치이름

: 현재 속해있는 브랜치에 해당 브랜치이름의 내용을 적용

: ex) master 브랜치에서 git merge a 입력 시 a브랜치 내용이 master로 적용됨

 

git branch --merged

: merge 된 branch를 알 수 있다.

 

git branch -d 브랜치이름

: 사용완료한 브랜치를 삭제할 수 있다.

 

3-2-1. merge conflict(충돌) 해결

 갈라지는 branch에서 같은 파일의 동일한 부분을 수정한 경우 나타나는 오류입니다. git merge하는 도중에 발생하며, 이를 해결하려면 우선 git status로 문제가 되는 파일을 확인합니다. 그 후 해당 파일을 들어가면,

 

<<<<<<<

(코드 내용)

=======

(코드 내용)

>>>>>>>

 

이런 식으로 나와있는데, ======= 위의 내용merge당하는 쪽의 코드이며, 아래는 그 반대이므로 둘 중 하나를 골라서 사용하거나 모두 수정한후 merge하면 정상적으로 작동하게 됩니다.

'git' 카테고리의 다른 글

4. vi 편집기  (0) 2021.01.09
3. Git remote, push  (0) 2020.12.20
1. Git(add, commit), Github  (0) 2020.12.20

댓글