• 카테고리

    질문 & 답변
  • 세부 분야

    개발 도구

  • 해결 여부

    해결됨

질문드립니다

21.05.08 18:01 작성 조회수 121

1

바로 질문으로 들어가자면,

이슈를 고치고 Pull Request를 작성해서 리뷰를 받고 merge를 하려고 했습니다.

하지만, 리뷰를 받을때 까지 꽤 시간이걸려서 사수분이 지금 최신화 코드들을 Pull Request에 반영해 달라고 하십니다.

그래서 저는 Pull Request를 취소하고 branch를 최신화하면 되겠지? 라고 생각했는데 생각대로는 안되서(여기가 문제)

아예 처음부터 최신 main branch의 시점에서 branch를 새로 만들고 커밋했던 친구들을 체리픽으로 가져와서 붙였는데,

이런 경우에는 좀더 매끄럽게 최신화 받을 수 있는 방법이 있을까요?

답변 1

답변을 작성해보세요.

0

오~ 좋은 질문입니다.

말씀해주신 방법 외에 두 가지 방법이 더 있어요.

(그나저나 굉장히 참신한 방법으로 푸셨네요 ㅎㅎ 짱)

1. 내 브랜치를 master브랜치의 최신 커밋에 rebase한다.

현재 내 브랜치는 master의 예전 커밋을 기준으로 만들어졌죠?

이를 master의 최신 커밋 등 내가 원하는 커밋으로부터 만든것처럼 조작하는게 rebase입니다 (re-base: 베이스를 다시 쓴다). 아래 블로그들을 참고하시면 되겠습니다.

- 제가 2015년에 쓴 글

- https://wbluke.tistory.com/26

2.  내 브랜치에 master브랜치의 최신 커밋을 merge시킨다.

PR 을 보내기 전에 내가 먼저 내 브랜치에 최신 master를 머지시켜버리는거예요. 그럼 내 브랜치에 최신 master코드가 반영되겠죠? 이렇게 먼저 머지한 브랜치를 최신 master에 PR을 보내시면 됩니다.

어짜피 PR compare에는 diff만 보이니까 내가 코딩한 부분만 보일거예요~

---

둘 중 어떤 방법을 쓰셔도 무방합니다.

1번은 merge commit 없이 내 브랜치를 깔끔하게 관리할 수 있다는 장점이 있지만, master와 내 브랜치에서 conflict가 난다면 이를 rebase하면서 고치기 귀찮다라는 단점이 있죠.

2번은 1번보다 더 간단하고, conflict가 있을 경우에도 한 번만 해결해주면 된다는 장점이 있지만 merge commit이 남는다는 단점이 있어요.

제가 2018년에 썼던 글이 있네요 ㅋㅋ 이것도 참고해주세요

화이팅