작업을 할때 가장 중앙에서 버전을관리하는 브렌치 이다. 그래서 해당 branch에 있는 버전으로 최종 배포를 한다.
근데 작업을 하다보면 해당영역에 영향을 받지 않고 새로운 가지에 빼서 다른 곳에서 기능을 만들어야 할때가 있다.
그럴땐 새로운 브랜치를 만들면 된다.
가장 쉬운병합 방법이다.
main에서 가지가 뻗어진 시점부터 main에는 더이상 커밋이 일어나지 않은 상태고 가지가 뻗어진 부분에서만 개발을 하다가 그 부분이 개발이 끝나서 merge를 하게 되면 가지가 뻗어나간 시점에 main이 형상이 같을때 사용.
병합을 할때 가지 브렌치에서 작업을 다 끝내고 합치는데
시나리오
메인에서 회원가입->로그인 개발후 topic브랜치 생성-> main에서 로그인파일수정(체크박스생성)-> 실수로 topic에서도 로그인파일 수정(라디오버튼 생성)
이런 경우에는 3-way merge가 되지 않는다 왜냐하면 각자 브랜치에서 같은 파일을 수정했기 때문이다.
위 경우에 merge를 할 경우에 충돌 오류가 난다. 그래서 이럴때는 merge를 하는 사람이 체크박스를 쓸건지 라디오버튼을 쓸것인지 선택해야한다.

자기가 merge할 수 없으니 니가 선택해 라고 로그가 나온다
그리고 파일로 가보면

저렇게 돼있다. 저게 무슨말이냐면
"=" 을 기준으로 위에걸쓸꺼야 아니면 밑에걸 쓸꺼야? 하고 직접 선택해라고 물어보는것이다.
그럼 위 상황에서 체크박스를 쓰고 싶다면?

이렇게 직접 선택을 해 주고 커밋을 해줘야한다.
