git

origin/master의 의미와 fetch

n.han 2017. 2. 23. 23:31

repository를 clone하면, 자동적으로 origin/master 포인터가 clone한 내용을 가리키고 있는 것을 볼 수 있다.

이 origin/master가 어떤 의미가 있을까?


리모트 브랜치는 리모트 저장소에 있는 브랜치를 말하고, 리모트 브랜치의 이름은 (remote 저장소 이름)/(branch 이름)의 형식을 갖는다.

git 서버의 저장소를 clone을 하면, git은 자동적으로 origin이라는 이름을 붙인다(아래 예제에서는 git.courcompany.com이라는 저장소를 clone하지만, 이름을 지정하지 않으면 Local에는 origin으로 clone됨). 그리고 origin으로부터 저장소 데이터를 모두 내려받고 master 브랜치를 만든다.



이 상황에서 누군가 git.courcompany.com에 master branch를 push했다고 가정하자. 그럼 Local과 Remote 간의 차이가 발생하게 된다. 물론 Local에도 작업이 발생하여 push를 해서, local의 master는 893cf를 가리키고 있지만 origin/master는 remote의 master를 가리키므로 여전히 f42c5를 가리킨다.


따라서 Remote의 변경점을 Local로 가지고 와서, origin/master가 190a3를 가리키게 하고 싶은 경우 fetch를 사용한다.




'git' 카테고리의 다른 글

origin/master의 의미와 fetch  (0) 2017.02.23
git clone, push 등에 사용되는 URL (https)  (0) 2017.02.22