2차 프로젝트: 중간 정리 (2)

Hyeon Soo·2021년 3월 5일
0

git을 이용하여 프로젝트를 관리할 경우, 1차 프로젝트에서는 merge를 사용하였다. 하지만 merge를 사용할 경우, commit이 시간 순서에 맞게 정렬되지도 않고, branch가 섞일 경우 알아보기 힘들게 된다. 이를 해결하기 위해 git rebase를 사용할 수 있다.

Branch가 여럿인 공동 프로젝트에서는, branch 별 merge가 겹치고 겹치다 보면 차후에는 commit이 어떤 작업이었는지 파악하기 어렵다. 한 branch에서 main으로 merge가 되면 commit이 옮겨지고, 그것을 다른 branch에서 main을 merge받으면 commit이 다시 옮겨지며, 그 상태에서 다시 main으로 merge되면 commit이 지나치게 많아진다. rebase를 사용하면 main의 변경 사항들이 branch로 적용되면서, branch의 분기 시점 또한 rebase시점으로 변경되는데다가, commit을 하나로 정리할 수 있어서 history를 알아보기 쉽다. 과정은 다음과 같다.

  1. main에 변경사항이 생기면, main으로 이동한 후 pull을 받는다.
  2. 다시 작업하던 branch로 이동하여, git rebase -i main 명령어를 입력한다.
  3. commit 메세지 가운데 가장 오래된 메세지 만을 pick으로 남기고, 나머지를 s로 바꾼다. 이를 squash라고 한다.
  4. 다음 창에서 통합 commit 메세지를 작성한다.
  5. git log로 commit 이 잘 통합되었는지 확인한다.
  6. 필요하면 git push를 진행한다.
  7. 이미 PR을 진행한 상태라면, git push branch명 -f로 강제 push를 실행한다. 이는 새로운 rebase후 commit 작성으로 인해 history가 달라져서 생긴 일로, 강제적으로 push를 진행할 필요가 있다.

위의 작업을 거치면 된다. 이때, conflict가 발생하면

  1. conflict를 해결한다.
  2. git add .
  3. git commit은 하지 않는다.
  4. git rebase --continue를 실행한다.
  5. conflict없이 rebase가 끝날 때까지 반복한다.

위의 과정을 통해 해결 할 수 있다.

0개의 댓글