[Git] fetch에 대해서(feat 로컬에 없는 원격에 생성된 새로운 브랜치를 로컬에 가져오는 방법)

calm·2023년 5월 23일

공부한 내용을 기록합니다. 부족하고 올바르지 않는 지식이라면 댓글 부탁드립니다.

pull

  • 원격의 코드를 로컬(내 컴퓨터의 코드)에 다운 받고, merge/rebase를 통해 내 로컬 코드와 원격의 코드를 서로 일치시키는 작업
  • git이 로컬의 브랜치와 merge 혹은 rebase를 알아서 해줌

fetch

  • 깃허브 원격에 저장된 코드를 내 로컬에 가져오는 것, 이후 git 명령어를 입력해야 함
  • 원격에 있는 코드를 나의 로컬 코드에 적용(병합)은 하지 않겠다는 명령어

*예시 용도

내 코드에 적용은 하지 않고, 깃헙에 있는 코드를 내 로컬의 코드와 테스트 할 용도

git fetch 이후, 원격의 브랜치로 이동

  • checkout을 사용해서 이동해야함

    git checkout origin/브랜치명

  • 이동해서 현재 원격에 해당된 브랜치가 적용된 상태를 볼 수 있음

  • 그러나 내 로컬과 아직 적용은 되지 않은 상태

그러나 이때 원격에 있는(혹은 새로 생성된=나의 로컬에 없는) 브랜치를 가져오고 싶다면

1. git fetch

  • 원격의 코드를 가져옵니다.

2.git checkout main

  • 혹시 다른 브랜치에 있을 경우, main으로 이동합니다.

3.git switch -t origin/'원격에 새로 생성된 브랜치명'

git switch -t origin/'원격에 새로 생성된 브랜치명'

  • switch
    - 이동합니다
  • origin/'원격에 새로 생성된 브랜치명'
    - 원격에 새로 생성된 브랜치명
  • -t
    - t는 'git push -u main'push의 u와 같아서, 원격의 상태와 동일시 여기도록 설정을 (맞추게) 되서 이후 커밋을 주고 받을 수 있게 된다.
profile
공부한 내용을 기록합니다

0개의 댓글