merge methods


### fast forward
- 기본 설정
- 만약 머지 대상의 브랜치와 fast-forward의 관계인 경우 머지 커밋은 만들어지지 않고 브랜치의 참조만 변경
```typegit merge --ff```


### none fast forward
- 「A successful Git branching model」를 참고로--no-ff를 사용하는것이 좋다
- fast-forward의 관계라도 필히 머지 커밋을 만든다
```typegit merge --no-ff```



### squash and merge
- 워크 트리와 인덱스의 상태는 머지 후의 상태가 되지만 머지 커밋은 만들어 지지 않는다
```typegit merge --squash```






[cherry pick merge](https://texonom.com/cherry-pick-merge-6cc466cf784d4dfb8326706c625b3502)


[rebase merge](https://texonom.com/rebase-merge-c71e28ad8e244c53be51fbf3f10f6d98)




## Change Default
- 방법 하나, alias사용하기
```typegit config --global alias.nffmerge "merge --no-ff"```
- 방법 두울, 특정 branch의 mergeoptions
```typegit config branch.**master**.mergeoptions "--no-ff"```
- **방법 세엣, global로 ff 옵션을 false로 바꾸기**
```typegit config --global merge.ff false```





> [Git, merge에서 fast foward시 commit message남기기 (--no-ff 옵션 활성화)](https://m.blog.naver.com/PostView.nhn?blogId=dudwo567890&logNo=221482356138&proxyReferer=https:%2F%2Fwww.google.com%2F)

> [GitHub의 Merge, Squash and Merge, Rebase and Merge 정확히 이해하기 : TOAST Meetup](https://meetup.toast.com/posts/122)





