우테코에선 항상 git으로 미션을 진행하는데, 페어 프로그래밍의 경우도 마찬가지다.
페어 프로그래밍에서의 git 사용법은 주로
- 둘 중 한 명의 노트북으로 같이 미션을 진행한다. 노트북 주인의 fork한 저장소에 커밋이 저장된다.
- 미션을 완수한 다음 다른 한 명은 노트북 주인의 저장소를 pull request로 가져간다.
- 각자 pull request를 날린다.
- merge 후, 단계가 나뉘어진 미션의 경우 upstream 저장소를 fetch, rebase 해서 다음 단계를 진행한다.
이런데, 충돌이 정말 자주 일어난다. merge되기 전에 다음 레벨 저장소를 파서 커밋을 이어 나갔거나 등등 여러 가지 이유가 있겠지만, 여기선 예방책보단 깔끔한 해결책을 알아보자.
다른 브랜치 또는 다른 리모트 저장소에서 가져오고 싶은 커밋이 있을 때, 개별 커밋 한 개 또는 연속된 여러 개를 똑 떼어서 가져오는 게 cherry-pick이다.
git cherry-pick (시작 커밋 해시) (끝 커밋 해시)
아래는 체리픽으로 페어의 저장소 최근 커밋 2개를 내 저장소로 가져온 모습이다.
Comments powered by Disqus.