[11] Git의 Origin

SeoChanhee·2020년 10월 19일
2
post-thumbnail

remotepush 명령어를 사용할 때 origin이라는 단어를 보게 되는데 이것의 개념을 확실히 잡지 못해서 공부를 하기로 했다. origin을 제대로 이해하기 위해서는 리모트 저장소의 개념을 좀 더 잘 이해할 필요가 있었다.

리모트 저장소

리모트 저장소 확인하기

git remote 명령으로 현재 프로젝트에 등록된 리모트 저장소를 확인할 수 있다. 이 명령은 리모트 저장소의 단축 이름을 보여준다. 저장소를 Clone 하면 origin이라는 리모트 저장소가 자동으로 등록되기 때문에 origin이라는 이름을 볼 수 있다.

위 내용에서 알 수 있듯이 origin리모트 저장소의 단축 이름이다. 저장소를 Clone하면 단축 이름이 자동으로 origin이라고 등록되기 때문에 우리는 origin이라는 이름에 익숙한 것이었다.

-v 옵션을 주어 단축이름과 URL을 함께 볼 수 있다(git remote -v). 리모트 저장소가 여러 개 있다면 이 명령은 등록된 전부를 보여준다.

한 프로젝트를 여러 개의 리모트 저장소에 연결할 수 있는 것이다. 여러 명이 한 개의 프로젝트를 진행할 때, 각자의 원격 저장소에 이 프로젝트를 쉽게 업로드할 수 있는 기능인 것 같다.
어떤 저장소에는 Push 권한까지 제공할 수 있다고 하니 Git의 활용도는 정말 무궁무진한 것 같다.

리모트 저장소 추가하기

기존 워킹 디렉토리에 새 리모트 저장소를 쉽게 추가할 수 있는데 git remote add <remote name(단축이름)> <repository URL> 명령을 사용한다.

이렇게 리모트 저장소를 추가하고 나면 지정한 단축 이름을 이용해 PushPull, 그리고 Fetch가 가능하다. (git push <리모트 저장소 이름> <브랜치 이름>)

(휴..) 이번에는 fetch라는 명령어가 등장했다. pull처럼 원격 저장소의 변경 내용을 가져오지만 차이점이 있다.

$ git fetch <remote>

이 명령은 로컬에는 없지만, 리모트 저장소에는 있는 데이터를 모두 가져온다. 그러면 리모트 저장소의 모든 브랜치를 로컬에서 접근할 수 있어서 언제든지 Merge를 하거나 내용을 살펴볼 수 있다.
git fetch 명령은 리모트 저장소의 데이터를 모두 로컬로 가져오지만, 자동으로 Merge 하지 않는다. 그래서 당신이 로컬에서 하던 작업을 정리하고 나서 수동으로 Merge 해야 한다. (git pull 명령으로 리모트 저장소 브랜치에서 데이터를 가져올 뿐만 아니라 자동으로 로컬 브랜치와 Merge 시킬 수 있다.)

리모트 저장소 살펴보기

$ git remote show <리모트 저장소 이름>

이 명령으로 리모트 저장소의 구체적인 정보를 확인할 수 있다.
1. 리모트 저장소의 URL과 추적하는 브랜치를 출력한다.
2. 브랜치명을 생략하고 git push 명령을 실행할 때 어떤 브랜치가 어떤 브랜치로 Push 되는지 보여준다. 또 아직 로컬로 가져오지 않은 리모트 저장소의 브랜치는 어떤 것들이 있는지, 서버에서는 삭제됐지만 아직 가지고 있는 브랜치는 어떤 것인지, git pull 명령을 실행했을 때 자동으로 Merge 할 브랜치는 어떤 것이 있는지 보여준다.

<리모트 저장소 이름>에는 URL과 단축이름 모두 들어갈 수 있지만 결과가 조금 다르다.

리모트 저장소 이름 바꾸기

git remote rename 명령으로 리모트 저장소의 이름을 변경할 수 있다(git remote rename <원래 이름> <바꿀 이름>). 로컬에서 관리하던 리모트 저장소의 브랜치 이름도 바뀐다.

여태까지 pb/master 로 리모트 저장소 브랜치를 사용했으면 이제는 paul/master 라고 사용해야 한다고 한다. 리모트 저장소 브랜치는 또 무슨 개념일까?

리모트 저장소 삭제하기

리모트 저장소를 삭제해야 한다면 git remote removegit remote rm 명령을 사용한다. 서버 정보가 바뀌었을 때, 더는 별도의 미러가 필요하지 않을 때, 더는 기여자가 활동하지 않을 때 필요하다. 이 방법으로 리모트 저장소를 삭제하면 해당 리모트 저장소에 관련된 추적 브랜치 정보나 모든 설정 내용도 함께 삭제된다.


출처: 2.5 Git의 기초-리모트 저장소 - Git-Book

0개의 댓글