git

#27 깃(Git) - 로컬 master 브랜치와 원격 master 브랜치의 차이 알아보기.

에이블디 2021. 12. 13. 16:36

안녕하세요! 에이블디입니다!

 

여러분, git pull 명령은 깃허브 리포지토리의 최신 커밋을 로컬 리포지토리에 합쳐주는 기능이란 거 이젠 다들 아시죠?

하지만 깃허브 리포지토리의 최신 커밋을 합치지 전에 깃허브 리포지토리에 어떤 변화가 있는지 먼저 확인한 후에 풀을 해야 하는데요, 이럴 때 먼저 깃허브 리포지토리의 정보만 먼저 가져올 수 있습니다.

 

이번 시간에는 일단 로컬 master 브랜치와 원격 master 브랜치의 상태 차이에 대해서 알아보겠습니다!

 

일단, 깃허브 리포지토리의 커밋 목록을 확인해 볼게요!

지난 시간까지 실습을 잘 따라오셨다면 위의 이미지처럼 'add office work'가 가장 최신 커밋일 거예요!

 

터미널 창에서 abled-home 디렉터리로 이동한 후 git log로 커밋 상태를 확인해 주세요.

간단하게 확인하기 위해 --oneline 옵션을 붙여줍시다.

$ cd ~/abled-home
$ git log --oneline

최종 커밋인 'add office work' 앞에 (HEAD -> master, origin/master, origin/HEAD)가 있네요!

여기에서 HEAD -> master는 이 커밋이 로컬 리포지토리의 최종 커밋이라는 뜻이고, origin/master는 깃허브 리포지토리의 최종 커밋이라는 뜻입니다.

지난 시간에서 abled-home 디렉터리에 깃허브 리포지토리를 복제한 상태 그대로이기 때문에 로컬 리포지토리와 깃허브 리포지토리 모두의 최종 커밋이 같은 거지요.

그림으로 표현하면 아래와 같이 표현할 수 있겠습니다.

그럼 두 리포지토리에 차이점을 주기 위해 abled-home 디렉터리에 새로운 커밋을 만들어 보겠습니다.

difference.txt 파일을 만든 후 'test'라는 내용을 입력 후 저장해 주세요.

$ vi difference.txt

difference.txt 파일을 만드셨으면 스테이징하고 'create difference.txt'라는 커밋 메시지와 함께 커밋해 주세요!

$ git add difference.txt
$ git commit -m "create difference.txt"

커밋이 잘 되었네요!

 

이제 git log --oneline 명령을 사용해 커밋 로그를 확인해 주세요!

$ git log --oneline

커밋 상태가 바뀌었죠?

(HEAD -> master)는 방금 커밋한 'create difference.txt'를 가리키고 있네요! 이것은 로컬 리포지토리의 최종 커밋이 'create difference.txt'라는 뜻입니다.

그리고 (origin/master, origin/HEAD)는 아직 푸시를 받지 않았기 때문에 'add office work' 커밋을 가리키고 있는 것을 확인할 수 있습니다.

현재의 상태를 그림으로 표현하자면 아래와 같습니다.

이 상태에서 git status 명령을 사용해 볼까요?

$ git status

현재 master 브랜치가 origin에 있는 깃허브 리포지토리의 master 브랜치의 버전보다 하나 앞서 있는 것을 알 수 있고, git push 명령으로 로컬 리포지토리의 커밋을 깃허브의 리포지토리로 올리라고 알려주고 있습니다.

 

그럼 알려준 대로 git push를 해주도록 합시다!

그리고 다시 한번 git log로 커밋의 상태를 확인해 보도록 할게요!

$ git push
$ git log --oneline

푸시가 잘되었고, master와 origin/master 브랜치가 같은 커밋을 가리키고 있는 걸 확인할 수 있습니다!

 

현재의 상태를 그림을 표현하면 아래와 같습니다.

이번 시간에는 이렇게 로컬 master 브랜치의 상태와 깃허브 master 브랜치의 상태의 차이에 대해 알아보았습니다.

 

다음 시간에는 깃허브 리포지토리의 정보를 가져오는 git fetch에 대해 알아보도록 할게요!

 

그럼 여러분 다음시간에 만나요!