인프런 강의 - git과 github 정리
merge
현재 브랜치 (head branch) 와 다른 브랜치를 합치는 것을 병합이라고 한다.
병합 시 자주 발생하는 상황
- 헤드 브랜치에 변경 사항이 없을 경우
- 합치려는 브랜치가 헤드 브랜치로부터 시작
- 그 사이 헤드 브랜치에서 아무 작업도 하지 않은 경우
주로 혼자 작업할 때 발생하는 상황이며, fast-forward
라고 한다.
- example
# version1 branch에서 작업
$ git branch version1
$ git checkout version1
$ git commit
# main branch에서 병합
$ git checkout main
$ git merge version1
- 브랜치가 생겨난 경우
- 과거의 커밋으로부터 브랜치를 생성해서 작업한 경우
- 새로운 브랜치 작업 이후 헤드에 다른 커밋이 있는 경우
- 여러 브랜치를 동시에 작업하면서 병합을 시도할 경우
여러 브랜치에서 동시에 같은 파일을 변경할 경우 충돌이 발생할 수 있다.
- 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