Infra/📺 Git

[Git] git과 github 3/7 - merge로 병합하기

posted by sangmin

인프런 강의 - git과 github 정리

merge

현재 브랜치 (head branch) 와 다른 브랜치를 합치는 것을 병합이라고 한다.

병합 시 자주 발생하는 상황

  1. 헤드 브랜치에 변경 사항이 없을 경우
    • 합치려는 브랜치가 헤드 브랜치로부터 시작
    • 그 사이 헤드 브랜치에서 아무 작업도 하지 않은 경우

주로 혼자 작업할 때 발생하는 상황이며, fast-forward라고 한다.

  • example
# version1 branch에서 작업 
$ git branch version1 
$ git checkout version1 
$ git commit 

# main branch에서 병합
$ git checkout main 
$ git merge version1
image
  1. 브랜치가 생겨난 경우
    • 과거의 커밋으로부터 브랜치를 생성해서 작업한 경우
    • 새로운 브랜치 작업 이후 헤드에 다른 커밋이 있는 경우
    • 여러 브랜치를 동시에 작업하면서 병합을 시도할 경우

여러 브랜치에서 동시에 같은 파일을 변경할 경우 충돌이 발생할 수 있다.

  • example
# version1, version2 branch 생성 
$ git branch version1
$ git branch version2 

# version1 branch에서 작업 
$ git checkout version1 
$ git commit 
$ git commit 

# version2 branch에서 작업 
$ git checkout version2 
$ git commit 
$ git commit 
$ git commit 

# main branch에서 병합 
$ git checkout main
$ git merge version1 
$ git merge version2
image