
보면, 한 커밋이 두 개씩 있다.

지금 무언가 잘못되었다. git전략이 잘못되었나? 현재, feature > develop으로 Squash & Merge를 수행한다.
커밋의 해쉬번호는 다르다. 그런데 같은 PR번호의 같은 내용이다.

첫 번째 커밋인 3dfcff3이다.

두 번째 커밋인 afadbd0이다.
올라간 PR은 하나인데, 두 개의 커밋이 동일한 이름으로 들어갔다.
내 예상은 develop > master로 머지 혹은 cherry pick을 했을 때 커밋 명이 바뀌고, 이를 pull -—rebase했을 때 다른 커밋으로 인식해 또 커밋이 쌓인 듯하다.
cherry-pick을 사용하여 다른 브랜치로 커밋을 가져갈 수 있다. 이 때, 새로운 커밋을 생성하고, 기존 커밋과 다른 해시 값을 가진다. 이것이 원인이 된 듯하다. cherry pick하는 과정에서 커밋 해시값이 바뀌어 master브랜치에 적용이 되었고, develop에서 pull —-rebase를 하면 이 커밋이 다른 커밋으로 인식하여 새롭게 가져오는 것이다. cherry pick은, develop에 적용한 변경사항을 master에 우선 반영하고 싶을 때 사용했다.
Squash & Merge는 여러 커밋을 단일 커밋으로 병합하는 과정이다. 그 과정에서 당연히 새로운 커밋이 생기고, 해시값이 생긴다.
Rebase & Merge는 한 브랜치의 커밋들을 다른 브랜치의 최신 커밋 위에 재배치하는 과정이다. 이 과정에서 재배치되는 커밋들은 새로운 해시값을 가질 수 있다. 즉, develop브랜치를 master에 Rebase & Merge하는 과정에서 develop의 커밋들은 새로운 해시값을 가지게 된다.