Git

작업 중인 브랜치에 다른 히스토리를 반영해야 할 때: Merge? Rebase?

1. 상황 develop(main) 브랜치 하위에 특정 기능을 구현하기 위한 feature/A 브랜치를 생성했습니다. feature/A 브랜치에서 몇 차례 Commit을 진행하고 Push 해둔 상태에서 아직 develop 브랜치에 반영하지는 않았습니다. 한편, 제가 feature/A에서 작업을 하는동안 다른 팀원이 develop 브랜치 하위에 feature/B 브랜치를 생성해서 수정사항을 반영한 뒤, develop 브랜치에서 Merge를 했습니다. 이 때, 저는 다른 팀원이 작업한 develop 변경 사항을 포함하는 동시에 제가 변경한 부분도 반영해서 앞으로의 작업을 이어나가고 싶습니다. * 아래 그림을 두고 설명하자면 feature/a 브랜치의 10~40 부분을 그대로 유지하면서 main의 변경사항 중..

2022.10.31 게시됨

Git

[Git] Rebase는 왜 쓰나

0. 들어가면서 아래와 같은 상황을 보겠습니다. 처음 시작점을 기준으로 Master가 두 번의 Commit을 한 뒤, 'feat' 이라는 브랜치(branch)를 생성했습니다. 그리고 브랜치가 생긴 시점(Base)으로부터 feat 브랜치는 두 번의 commit을 더했고, master 역시 두 번의 커밋을 더 진행했습니다. 이 상황에서 master의 변경 사항을 feat 브랜치에 반영하고 싶습니다. 그러면 아래와 같이 병합(Merge)을 통해 master와 feat의 최신 Commit을 공통의 조상으로 하는 새로운 Commit을 생성할 수 있습니다. 그리고 feat 브랜치는 이제 새로 생성된 Commit의 위치로 이동하게 됩니다. 이를 3-Way Merge라고도 합니다. 한편, 이 상황에서 Rebase를 사..

2022.04.13 게시됨