[Git] Squash Merge..

내 브랜치가 오래된 브랜치란 사실과 pull을 받지 않았다는 사실을 잊은 채 merge를 시도했다.

merge가 안된다는 오류가 떴고, rebase를 해야겠다고 결심했다.

그래서 rebase를 했는데 계속해서 conflict가 생겼고.. conflict를 해결하다가 정신을 놓아버린 나머지 merge까지 시켰다..

 

그 결과 그래프가 난리가 났고

 

ㅋㅋㅋㅋㅋㅋㅋ 

기본 merge가 squash merge로 변경되었다.. 

이래서 신입사원한테 merge 권한 안준다는 깨달음을 팀장 오빠에게 안겨주었다ㅎㅎ..


- Merge

 

대부분 사용하는 방식으로, 커밋 이력이 모두 남는다.

 

- Squash Merge

Squash는 여러 개의 커밋을 하나로 합치는 것을 의미한다.

Squash Merge를 하게 되면 이전에 했던 커밋 히스토리가 사라지니 주의해야 한다.

 

- Rebase Merge

 

내 브랜치가 분기된 커밋이 내 브랜치의 Base가 된다.

Rebase는 말 그대로 Base를 다시 설정하는 것이다.


내가 Rebase를 했기 때문에 나의 커밋들이 먼저 찍히고, 그 후 develop에 있던 커밋들이 찍히게 되었다.

따라서 그래프가 매우 길어졌고 보기 힘들어졌다.

Sqaush Merge를 했다면 커밋이 하나로 줄어들어서 해결되었을텐데..🫢

 

결국 origin을 강제로 이전의 develop으로 이동시키고 문제의 브랜치는 삭제한 뒤,

새로운 브랜치를 최신 develop을 base로 만들어서 작업을 함으로써 문제를 해결했다.

 

길었던 커밋 기록들은 사라지게 되었다~!

Git에 대한 지식이 부족해서 일어난 일인것 같다..

Squash merge의 존재를 알았더라면 이런 일이 없었겠지😢

'Git' 카테고리의 다른 글

[Git] Git Workflow(Git-Flow, GitHub-Flow)  (0) 2023.04.29
[Git] Git/GitHub  (0) 2023.04.28