[우테코 8기 BE] 페어 프로그래밍 시 커밋 히스토리 유지하는 방법

2026. 3. 22. 15:56·우아한테크코스 8기 백엔드

이 방법이 필요한 이유

페어 프로그래밍을 하다 보면 한 가지 불편한 상황이 생긴다. 드라이버가 바뀔 때마다 노트북을 들고 자리를 옮기거나, 한 컴퓨터에 두 명이 붙어 앉아야 하거나, 코드를 슬랙으로 전달하거나... 그렇게 힘들게 완성해도 커밋 히스토리는 한 사람 것만 남아있게 된다.

또 하나의 노트북으로 할 경우, 둘의 설정(필자의 경우 OS)이 달라서 불편한 경우가 있다.

하나의 노트북으로 페어 프로그래밍이요?

Git으로 origin 외에도 원격 저장소를 추가로 연결할 수 있다는 점을 활용하면 이 문제를 깔끔하게 해결할 수 있다. 각자 자기 자리에서, 자기 노트북으로, 커밋 히스토리도 온전히 남기면서 페어 프로그래밍을 할 수 있다.

각자의 노트북으로 페어 프로그래밍

 

사전 설정 (최초 1회)

서로의 GitHub 레포지토리를 pair라는 이름의 원격 저장소로 등록한다. 이 작업은 처음 한 번만 진행하면 된다.

본인 터미널에서: 

git remote add pair https://github.com/<페어의 깃허브 아이디>/<페어의 레포지토리 이름>

ex) git remote add pair https://github.com/jihwankim128/java-blackjack.git

(첫 미션에서 이 방법을 처음 설명해준 최고의 페어 이프의 레포이다.)

페어 터미널에서:

git remote add pair https://github.com/<본인의 깃허브 아이디>/<본인의 레포지토리 이름>

등록 후 아래 명령어로 제대로 연결됐는지 확인할 수 있다.

git remote -v

아래 이미지처럼 origin과 pair가 모두 보인다면 성공이다. 이후 함께 작업할 공통 브랜치를 각자 만들어준다. 브랜치 이름은 서로 통일해야 한다.

git remote -v
이후 작업을 진행할 공통 브랜치를 저와 페어 모두 만든다. 브랜치 이름은 step1으로 통일하였다.
git checkout -b step1

여기까지 완료됐다면 사전 준비는 끝이다.


페어 프로그래밍 사이클

이제부터는 아래 사이클을 계속 반복하면 된다.

① 드라이버가 작업 후 본인 origin에 push

드라이버는 작업을 완료한 후, 터미널에 다음과 같이 입력하여 자신의 원격 저장소(origin)의 step1 브랜치에 push 한다.

git add .
git commit -m "docs: readme 작성"
git push origin step1

② 역할 교대 — 새 드라이버가 pair에서 pull

코드를 작성하기 전, 새 드라이버는 반드시 페어의 최신 내용을 먼저 가져와야 한다.

git pull pair step1

그다음 이어서 이름 입력받기 작업을 완료했다고 하자. 작업이 완료되면 아래와 같이 다시 본인 origin에 push한다.

git add .
git commit -m "feat: 이름 입력받기"
git push origin step1

다시 페어는 pull을 받은 후 작업을 시작한다.

 

...

 

이 작업이 계속 반복된다.

과정의 흐름도

앞으로 페어 프로그래밍이 끝날 때까지 이 사이클(pull pair -> 작업 -> push origin)을 계속 반복하면 된다.

git graph

위 사진과 같이 커밋 히스토리를 온전히 가져갈 수 있다.


이 방식의 장점

1. 노트북을 바꿀 필요가 없다. 각자 자기 자리에서 본인 키보드와 모니터로 편하게 작업할 수 있다. 코드를 옮기거나 한 컴퓨터에 두 명이 붙어 앉는 수고를 덜 수 있다.

2. 커밋 히스토리가 온전히 남는다. 두 사람의 커밋 내역이 시간순으로 자연스럽게 엮인다. 누가 어떤 코드를 작성했는지 추적하기 쉽고, PR을 보낼 때도 깔끔한 히스토리를 유지할 수 있다.

3. 각자의 개발 환경을 그대로 쓸 수 있다. 단축키, 테마, 플러그인 등 본인에게 최적화된 IDE 환경 그대로 작업할 수 있어 생산성이 떨어지지 않는다. 각자의 로컬에 최신 코드가 남아있어 복습이나 리팩터링을 따로 진행하기도 편하다.

 


이 글을 첫 페어프로그래밍 하면서 나에게 많은 가르침을 준 이프에게 바친다..!

페어 프로그래밍하면서 커밋 히스토리 때문에 고민이었던 크루들에게 도움이 됐으면 좋겠다는 마음에 작성한다.

혹시 더 좋은 방법이 있다면 공유해주세요!! 😊

'우아한테크코스 8기 백엔드' 카테고리의 다른 글

[우테코 8기 BE] 온보딩 회고  (0) 2026.03.22
[우테코 8기 BE] 최종시험 후기 및 회고  (0) 2026.01.24
[우테코 8기 BE] 4 & 5 주차 오픈미션  (0) 2025.11.24
[우테코 8기 BE] 3주차 로또 리뷰  (0) 2025.11.02
[우테코 8기 BE] 2주차 자동차 경주 리뷰  (0) 2025.10.27
'우아한테크코스 8기 백엔드' 카테고리의 다른 글
  • [우테코 8기 BE] 온보딩 회고
  • [우테코 8기 BE] 최종시험 후기 및 회고
  • [우테코 8기 BE] 4 & 5 주차 오픈미션
  • [우테코 8기 BE] 3주차 로또 리뷰
무빙건입니다
무빙건입니다
안녕하세요, 무빙입니다. 멈추지 않고 계속 움직이면서 배우는 개발자가 되고 싶습니다.
  • 무빙건입니다
    무빙의 블로그
    무빙건입니다
  • 전체
    오늘
    어제
    • 분류 전체보기 (92)
      • 백준 문제풀이 (32)
        • bfs (13)
        • dfs (4)
        • shortest path (2)
        • implemetation (2)
        • data structure (5)
        • dynamic programming (2)
        • greedy (1)
        • brute force (1)
        • back tracking (1)
        • string (0)
        • binary search (1)
      • 드림핵 문제풀이 (42)
        • web (17)
        • reversing (6)
        • pwnable (2)
        • misc (10)
        • forensics (7)
      • 우아한테크코스 8기 백엔드 (7)
      • 정보 보안 (0)
        • WEB (0)
        • Reversing (0)
        • 시스템 해킹 (0)
        • Forensics (0)
      • 임베디드 (4)
        • NVIDIA Jetson (4)
        • raspberry pi (0)
      • AI (6)
        • Claude (3)
        • OpenAI gpt (1)
        • n8n (2)
      • 서평 (1)
  • 인기 글

  • 최근 글

  • 링크

  • hELLO· Designed By정상우.v4.10.3
무빙건입니다
[우테코 8기 BE] 페어 프로그래밍 시 커밋 히스토리 유지하는 방법
상단으로

티스토리툴바