04. github repository(원격 저장소)로 부터 최신상태 가져오기

joseph·2022년 6월 26일
1

Git & GitHub

목록 보기
4/5

요약

fetch를 이용하는 방법

  • git fetch origin 입력 - origin 원격 저장소로부터 최신 상태를 가져온다.
  • git merge origin/master 입력 - origin 원격 저장소의 master 브랜치 내용을 합친다.

pull을 이용하는 방법

  • git pull origin master 입력 - origin 원격 저장소의 master브랜치의 최신 상태를 가져온 후 합친다.

목적

  • 협업을 진행 하게되면 로컬 저장소와 연결된 원격 저장소의 상태가 다른경우가 많이 생길 것이다.
  • 본인 로컬 저장소와 연결된 원격 저장소의 상태가 다를 경우 git push를 할 수 없다. 따라서 원격 저장소로부터 내용을 받아오는 방법을 알아보자.

fetch를 이용하는 방법

  • 협업을 하거나 git clone 이 아닌 git init 으로 시작하고 원격 저장소와 연결을 하면 로컬과 원격의 상태가 다른경우가 있다.
  • 예를 들기 위해 새로운 폴더를 만들고 git init 후 밑의 저장소와 연결을 해 보았다.
  • 연결을 했지만 나의 로컬 저장소에는 저 빨간색 부분의 파일이 없다.
  • 이 상태에서 본인 로컬 저장소에서 새롭게 작업을 한 뒤에 push를 하려고 하면 안된다. 따라서 원격 저장소로 부터 내용을 받아와서 나의 로컬 저장소와 합쳐 주어야 한다.
  • git fetch origin 입력 - origin 원격 저장소로부터 최신 상태를 받아온다.(합치는게 아님!)
weeyosup@Weeui-iMac init3 % git fetch origin
remote: Enumerating objects: 18, done.
remote: Counting objects: 100% (18/18), done.
remote: Compressing objects: 100% (8/8), done.
remote: Total 18 (delta 4), reused 17 (delta 3), pack-reused 0
Unpacking objects: 100% (18/18), 1.47 KiB | 100.00 KiB/s, done.
From https://github.com/joseph-wee/git-practice
 * [new branch]      master     -> origin/master
  • 그러면 위와 같은 메세지가 나올텐데 받아온 최신 상태의 내용이 origin/master 브랜치에 있다는 뜻이다. 그런데 지금 최신 상태를 받아 온 것이지 그 내용을 로컬 저장소와 합친 것이 아니기 때문에 합쳐주어야 한다.
  • git merge <합치고자 하는 branch이름> 이를 이용하여 합치면 된다.
  • git merge origin/master 입력 - origin/master 브랜치의 내용을 현재 브랜치로 합친다는 뜻이다.
  • 이러면 합쳐진 것이고 폴더를 확인해보면 밑처럼 없던 index.html 파일이 생긴것을 볼 수 있다.
weeyosup@Weeui-iMac init3 % ls
index.html
  • 이제 작업을 한 뒤 git push 를 하면 된다. 근데 작업도중 원격 저장소의 내용이 바뀌면 위의 방법을 다시 반복한다.

pull을 이용하는 방법

  • git pullfetch + merge 를 한번에 수행한다고 보면 된다.
  • 아까와 같이 git init 후 원격 저장소와 연결을 하고
  • git pull origin master 입력 - origin의 master브랜치로 부터 최신 상태를 받아온 후 현재 로컬 저장소에서 현재 브랜치와 합친다.
  • 그러면 밑처럼 메세지가 나올것이고 확인 해보면 index.html이 생긴것을 볼 수 있다.
weeyosup@Weeui-iMac init4 % git pull origin master
From https://github.com/joseph-wee/git-practice
 * branch            master     -> FETCH_HEAD
weeyosup@Weeui-iMac init4 % ls
index.html	// index.html이 있는것을 볼 수 있다.
  • 이제 작업을 한 뒤 git push 를 하면 된다. 근데 작업도중 원격 저장소의 내용이 바뀌면 위의 방법을 다시 반복한다.
profile
프론트엔드 학습, 개발 블로그

0개의 댓글

관련 채용 정보