Git-Remote(1)

2024. 7. 1. 21:20오픈소스SW

지금까지는 개인PC에서 버전을 관리하는 Local VCS과정을 설명하였다.

 

이제는 개인PC가 아닌 인터넷이나 네트워크 어딘가에 있는 저장소에 버전을 관리하는 Remote 저장소에 대해 설명하려고 한다.

 

Git에서 원격 저장소(Remote Repository)는 중앙 서버에 호스팅된 저장소로, 여러 개발자들이 협업하여 프로젝트를 관리할 수 있게 해준다.  원격 저장소는 로컬 저장소와 달리 인터넷을 통해 접근할 수 있다.

 

● 원격 저장소 추가

git remote add <별칭>  <URL> 명령어를 사용한다. 

 

여기서 origin은 원격 저장소의 별칭으로, 기본적으로 사용되는 별칭이다.

 

● Fetch/Pull/Push

Pull - 원격 저장소의 최신 변경 사항을 로컬 저장소로 가져오는 작업을 풀이라고 한다. 풀은 git pull 명령어를 사용한다.

Fetch - 풀과 비슷하지만, 변경 사항을 병합하지 않고 단순히 가져오기만 하는 명령어가 git fetch이다.

Push - 로컬 저장소에서 작업한 내용을 원격 저장소로 업로드한다. git push 명령어를 사용한다.

●Remote branches

 

팀 프로젝트를 위해 git.ourcompany.com이라는 곳에서 저장소를 복사해서 가져오면 (clone) 내 PC에서는 로컬브랜치와 원격브랜치가 동일한 곳을 가리키고 있다. 

 

만약 여기서 내가 내용을 수정하고 있을 때 다른 누군가가 내용을 수정해서 Push하면 어떻게 될까?

다른 사람이 원격 저장소에 변경 사항을 Push하면, 해당 브랜치의 원격 버전이 업데이트되고, 내가 변경사항을 Push하려고 하면 오류가 생길 것이다. (위 그림에서 다른 사람이 내용을 수정한 저장주소와 내가 내용을 수정한 저장주소는 다르기 때문)

 

Push가 안된다면 내가 수정하고 있는 버전이랑 git.ourcompany.com에 있는 버전이 다르기 때문에 동기화 시켜줘야한다.

그럴 때 사용하는 것이 바로 fetch이다.

git fetch 명령어를 사용하여 동기화를 시켜주면 위의 그림처럼 Divergent history가 생길 것이다. 그 때 로컬브랜치와 원격브랜치를 병합시켜서 linear하게 설정한 후에 Push를 하면 오류없이 실행될 것이다.

 

그래서 우리는 원격 브랜치를 이용해 버전을 업데이트할 때 Fetch - Merge - Push과정을 반복해서 수행해야한다.

 

 

'오픈소스SW' 카테고리의 다른 글

Distributed Git  (0) 2024.07.02
Git-Remote(2)  (0) 2024.07.01
Git-Branching(3)  (1) 2024.06.30
Git-Branching(2)  (0) 2024.06.30
Git-Branching (1)  (0) 2024.06.30