🐨
Git Tutorial
  • Git
  • 🚲개요
    • git command
  • 🏍️초기 세팅
    • git config
    • git fork, git clone
  • 🚙Add-Commit-Push
    • add, commit, push
    • add, commit, push 동작 과정
    • pull request
  • 🚅변경사항 살펴보기
    • git status
    • git diff
    • git log
    • git show
  • ✈️Add-Commit-Push 심화
    • 커밋 메시지 본문 작성하기
    • 특정 파일/폴더만 add 하기
    • 특정 파일/폴더만 add 취소하기
    • 강제 push 하기
    • 이미 만든 커밋 메시지 수정하기
  • 🚀커밋 되돌리기
    • git reset --soft
    • git reset --hard
  • 🛸협업하기
    • git remote
    • fetch, merge, pull
    • git branch
  • 마치며
Powered by GitBook
On this page
  • 1. fetch
  • 2. merge
  • 3. pull
  • 4. Fork한 리포지토리로 돌아가기
  1. 협업하기

fetch, merge, pull

Previousgit remoteNextgit branch

Last updated 2 years ago

이제 원격 저장소에 있는 코드를 로컬로 가져오는 방법을 알아봅시다.

먼저 실습을 해보기 위해 git reset --hard dcff87a 와 git push -f 를 입력합니다.

1. fetch

fetch란 원격 저장소에서 가장 최신으로 저장된 데이터를 확인해보고, 원격 저장소에 데이터가 변경이 됐는지 안됐는지만 확인합니다.

이때 중요한 점은 fetch만 사용한다고 해서 바로 로컬에 있는 코드가 업데이트 되지 않습니다.

이제 fetch를 진행해봅시다.

로컬에 저장된 리포지토리의 최신 커밋 목록을 확인해보면 이렇게 커밋 메시지가 되어 있습니다.

여기서 git fetch <remote 이름> 을 사용해봅시다. git fetch upstream 을 사용하면 됩니다.

그러면 이렇게 새로운 브랜치를 찾은 것을 확인할 수 있습니다.

2. merge

Fetch를 했으면 이제 Merge를 해야 로컬에 반영을 할 수 있습니다.

이것은 git merge <참조할 원격 저장소>/<업데이트를 할 브랜치명>를 입력하면 됩니다.

여기서는 upstream과 main 브랜치이니 git merge upstream/main 으로 작성하면 됩니다. (브랜치는 다음 장에서 설명할 예정입니다.)

merge를 하면 최신 버전으로 저장할 수 있습니다.

이제 GitHub를 살펴보면 아직 기록을 하지 않았기 때문에 옛날 버전 그대로 나오게 됩니다.

그래서 git push 를 통해 리포지토리에 반영을 합시다.

가장 최신 커밋으로 바뀐 것을 확인할 수 있습니다.

3. pull

fetch and merge를 한 번에 하는 방법은 pull을 사용하는 방법입니다.

git reset --hard dcff87a 와 git push -f 를 다시 적용합시다.

이후 git pull <원격 저장소 이름> <브랜치 이름> 을 입력하면 됩니다.

여기서는 git pull upstream main 을 실행하면 됩니다.

fetch와 merge가 한 번에 진행하는 것을 파악할 수 있습니다.

4. Fork한 리포지토리로 돌아가기

내가 Fork한 리포지토리와 현재 로컬의 기록이 서로 다른 상태일 때, 그리고 나는 GitHub에 기록된 Fork한 리포지토리로 돌아가고 싶을 때가 있을 겁니다.

이때에는 git pull을 사용하면 내가 Fork한 리포지토리의 GitHub 기록으로 다시 돌아가게 됩니다.

이번엔 강제 push 없이 git reset --hard dcff87a 만 적용합니다. 그리고 현재 Fork한 리포지토리는 위 사진처럼 가장 최신 커밋으로 되어 있어야 합니다.

이후 git pull 을 적용해봅시다.

이렇게 바로 GitHub에 기록된 내용으로 돌아갈 수 있게 됩니다.

🛸