Merge 를 통해 통합된 새 버전으로Branchpull 과 헷갈릴 수 있는데, pull 은 원격 리포지토리에 있는 코드를 로컬 리포지토리에 받아오는,
즉 업데이트를 하는 개념이고 Merge 는 합치는 개념이다.
합치려는 브랜치가 동일한 코드를 수정할 경우 발생한다.
브랜치 포인터가 Merge 과정 없이 그저 최신 커밋으로 이동하는 방식

Fast forward 관계를 가진다.서로 다른 브랜치의 Base 커밋에 내용이 변경되지 않았을 때 사용된다.
예시) 기존 main 브랜치에서 새로운 브랜치 feature 하나를 생성한 후,
main 에서는 더 이상 커밋하지 않고, feature 에서만 커밋하는 경우에
fast-forward 방식으로 Merge 된다.
이 경우에는 Merge 커밋이 따로 만들어지지 않고 HEAD 의 위치만 이동한다.
사용 방법)
git merge {Branch}
사용 방법)
git merge --no -ff {Branch}
Merge 대상과 Fast-Forward 관계여도 강제로 Merge 커밋을 생성하고 병합
1. 브랜치에 관계 없이 필요한 커밋만 가지고 올 수 있게 된다
2. 어떤 브랜치에서 `Merge` 했는지 기록을 남길 수 있다.
⇒ 협업 과정에서는 기록을 남기는 것이 필요해 이 방식을 권장
각 브랜치에 새 커밋이 하나 이상 있는 경우
Merge했을 때 두 브랜치의 코드를 합쳐 새로운 커밋을 자동으로 생성해주는 것

Base 브랜치를 기점으로 충돌을 최소화 시키는 방법Base를 기준으로 어떠한 브랜치 파일이 수정되었는지 확인할 수 있어Fast Forward 방식으로는 백 트래킹 없이 다른 브랜치로 이동하는 것이 어려워,3-way-merge 방식이 사용된다.사용 방법)
git merge {Branch}
이런 방법이 있는지 처음 알았다.
너무 어렵다.
Git Merge