formulous

주니어 개발자의 개발 지식 공유 블로그입니다.

Git

[Git] Git 명령어에 대해 알아봅시다. (git remote update / git fetch / git push / git pull)

formulous 2022. 12. 26. 11:10

안녕하세요.

 

오늘은 Git 브랜치와 원격 저장소를 업데이트하고 관리해주는 네 가지 명령어에 대해 알아보겠습니다.

 

Git에 대한 경험 없이 업무를 경험했을 때는 사수분들의 입력에 따라 움직이는 로봇처럼 Git을 다루게 되죠.

 

 

그 로봇 행동의 대표적인 것이 저장소 관리가 아닐까 생각이 듭니다.

 

"pull 받으려면 git remote update 하고 git pull 하시고...." (제 경험)

 

이렇게 사수분의 입력에 따라 움직이는 행동의 주요 원인은 머릿속에 그 명령어에 대한 개념이 자리잡지 않았기 때문인데요.

 

이제는 그런 일이 발생하지 않도록 개념을 확고히 하는 시간을 가져볼까요?

 

 

명령어를 접하기 전에, 원격 저장소에 대한 이해가 선행되어야 합니다.

 

Git에는 원격 저장소(또는 리모트 저장소)라는 개념이 있는데요.

 

원격 저장소란 인터넷이나 네트워크 어딘가에 있는 저장소를 말합니다.

 

(GitHub, GitLab 등등도 원격 저장소에 해당합니다,)

 

개발자로서 다른 사람과 협업한다는 것은 원격 저장소에 데이터를 push, pull 하며 함께 관리한다는 것과 같은 의미입니다.

 

그럼 원격 저장소를 관리하는 데에 유용한 네 가지 명령어에 대해 알아봅시다.

 

 

1. git remote update

 

git remote update 명령어는 원격 저장소의 모든 브랜치에 대한 최신 이력 정보를 확인하는 명령어입니다.

 

보통 pull 받기 전 git remote update 명령어를 사용해 최신 이력 정보를 확인한 후, git pull 명령어로 해당 내용을 받아옵니다.

 

브랜치를 최신화하기 위한 초기 과정이라 생각하면 됩니다.

 

 

2. git fetch

 

git fetch 명령어는 현재 위치한 브랜치의 최신 이력 정보를 확인하는 명령어입니다.

 

현재 브랜치의 최신 이력을 확인하고 pull / merge 명령어로 해당 내용을 받아올 수 있습니다.

 

모든 브랜치의 최신 이력 정보를 확인하려면 --all 옵션을 사용하면 됩니다.

 

git fetch --all 명령어는 git remote update와 똑같은 역할을 한다고 생각할 수 있겠죠?

 

 

3. git push

 

git push 명령어는 말 그대로 본인의 프로젝트를 원격 저장소에 Push 하는 명령어입니다.

 

원격 저장소에서 clone을 받아오면 자동으로 원격 저장소를 관리할 수 있는 origin이라는 경로가 생성되는데요.

 

아래와 같은 명령어로 원격 저장소 서버에 본인의 프로젝트를 push 할 수 있습니다.

 

 git push origin master

 

이 명령어는 clone 하고 난 이후 저장소에 아무도 push 하지 않았을 경우에 사용할 수 있습니다.

 

만일 누가 본인보다 먼저 push를 했다면, 다른 사람의 작업 내역을 merge 한 이후에 push 할 수 있어요.

 

협업 프로젝트에서 충돌을 방지해야 하는 건 기본적인 사실이란 것 기억하시나요?

 

위의 기능은 다른 사람들의 프로젝트와 충돌을 방지하지 위한 기본 방편이라 할 수 있습니다.

 

 

4. git pull

 

마지막으로 알려드릴 명령어 git pull입니다.

 

git pull 명령어는 git fetch + merge라고 생각하시면 편할 텐데요.

 

우선적으로 원격 저장소의 최신 이력을 확인합니다.

 

그리고 확인된 최신 이력을 git pull을 실행한 본인 브랜치에 merge까지 해주는 역할이에요.

 

 

이렇게 간단하게 원격 저장소(리모트 저장소)를 관리할 수 있는 네 가지 명령어에 대해 알아보았습니다.

 

도움이 되셨나요?

 

협업 프로젝트에서 중추 역할을 하는 Git, 그 저장소를 관리하는 명령어들에 대해서는 확실히 알고 사용할 수 있도록 하는 게 좋겠죠?

 

이해하셔서 유용하게 사용하셨으면 좋겠습니다.

 

여기까지 포스팅을 마치겠습니다.

 

감사합니다.