[깃, 깃허브] 깃허브 데스크톱으로 merge, 다른 브랜치 pull 하기

2-pi-r·2023년 2월 2일
0

개발

목록 보기
2/8

배경

  • 현재 나는 선배의 레포지토리에서 새 브랜치를 파서 거기에 바로 커밋하고 있다.
  • 깃허브 명령어가 아직 익숙치 않아서 깃허브 데스크탑 앱을 사용한다.

상황1

상황설명

  • 나는 이번주에 날짜_2pir 브랜치에서 작업 중이었다. (브랜치명은 그냥 예시이다.)
  • 나는 화요일에 작업을 하다가 커밋을 하지 않고 퇴근했다. (디버깅을 다 못 끝내서 다음 출근 때 해결하고 커밋할 생각이었다.)
  • 수요일에 선배가 날짜_2pir 브랜치를 날짜_merge 브랜치에 머지했다. (선배의 작업 + 월요일까지의 내 작업이 합쳐졌다.)
  • 목요일에 출근한 나는 당황했다. 내 화요일 작업(아직 커밋하지 않은 작업)을 유지하면서, 날짜_merge 브랜치를 pull한 후 작업해야 했다.

접근

pull : fetch + merge를 한 번에 하는 명령어이다.
그런데 (로컬) 날짜_2pir 브랜치에 (원격) 날짜_merge 브랜치를 pull하는 방법을 모르겠다. 그러니까 fetch랑 merge를 따로 해보자!

해결방법

1. 내 작업 commit

  • 침착하자. 일단 작업하던 브랜치에서 내 화요일 작업이 날아가지 않도록 커밋한다.
    • 커밋 안 하고 브랜치 이동하면 작업내용이 날아가니 주의. 다행히도 깃허브 데스크탑은 친절하게 팝업창을 띄워서 '너 이러면 작업내용 다 날아가는데 정말 이동할 거니?'하고 물어봐준다.
    • 자, 작업을 커밋해뒀으니 어떻게 되어도 나중에 복구할 방법이 있을 것이다. 안심! 이것만 해도 반절은 해낸 셈이다!

2. 상대 작업 fetch

  • origin/날짜_merge 브랜치로 이동한다.
    • 이때 자동으로 fetch가 되는 것 같다. (나는 fetch를 누른 기억이 없다.) 내 로컬에 날짜_merge 브랜치가 생겨있더라.
    • 날짜_merge 브랜치는 로컬 브랜치, origin/날짜_merge 브랜치는 원격 브랜치다.

3. 2를 내가 작업 중인 브랜치에 merge

  • 다시 날짜_2pir 브랜치로 이동한다.
  • 상단바에서 Branch(Help 왼쪽에 있다.)
    → Merge into current brach 클릭
    → 어떤 브랜치를 가져올지 선택 (여기서는 날짜_merge 브랜치)
    → 아래에 파란색 create a merge commit 버튼 클릭해서 머지하기.

상황2

상황설명

  • 이렇게 머지를 잘 하고 뿌듯해하고 있는데 선배가 부른다. 날짜_merge에 새 작업 커밋해놨으니까 그것까지 pull해서 작업해요.
  • 날짜_merge 브랜치를 머지해서 가져오려니까

원인

  • 선배가 말한 날짜_merge 브랜치는 원격 브랜치이다. 깃허브 데스크톱에는 origin/날짜_merge로 적혀있다.
  • 내가 머지하려고 시도한 브랜치는 로컬 브랜치다.
    • 이 로컬 브랜치에는 아직 선배의 새로운 작업이 반영되지 않았다.

해결방법

  • fetch부터 하면 된다.
    • 날짜_merge 브랜치(로컬)로 이동한다.
    • 깃허브 데스크톱에서 fetch 버튼을 눌러준다.
    • 날짜_2pir 브랜치(로컬)로 이동한 후 다시 merge를 시도한다.

0개의 댓글