본문 바로가기

이것저것

[git] 원격 저장소(github/gitlab)와 로컬 저장소 연결하는 방법

개발하는데 있어서 git은 땔래야 땔수 없는 사이다. 간단히 최초에 git 원격 저장소(remote repository) 생성하고, 로컬 저장소(local repository) 연결하는 방법을 정리하고자 한다.

1. 원격 저장소 생성

github, gitlab 이든 "create repository"를 통해서 원격 저장소를 생성한다. 생성할 때 "Add a README file" 체크하지 않도록 한다. 아무 파일도 없는 빈 repository를 만들기 위해서다. 생성이 되면 다음과 같은 화면이 나오고 Quick setup 내용이 표시된다. 여기서는 HTTPS or SSH 에 표시되어 있는 내용이 중요하다.

 

2. 로컬 저장소 생성

원하는 위치에 폴더를 생성한다. 폴더 생성 후, "git init"을 통해 git 초기화를 진행한다.

git init

 

3. 원격 저장소와 로컬 저장소 연결

1, 2 단계는 각각의 저장소를 따로따로 생성하는 단계였고, 이제 연결을 해야 한다. 명령어는 간단히 "git remote add"를 이용하면 된다.

git remote add [별칭] [원격 저장소 URL]

 

지금까지 진행하면 원격 저장소(Remote)와 로컬 저장소(Local) 연결이 완료가 된 상태다. 이후는 파일 추가나 삭제 등을 진행하면서 프로젝트 개발하면 된다.

 


원격 저장소 변경이 필요한 경우

위에서 설명한 경우는, git 최초 생성하고 개발 초기 세팅하는 경우다. 뭐 대부분은 git 공유 받고, git clone 명령어 통해서 개발을 진행할 것이다. 약간 예외적인 경우에 원격 저장소 변경이 필요할 경우가 있는데, 다음과 같은 경우다.

  • 기존 A repository를 통해 개발을 하고 있다가, 어떤 이유로 인해 새로운 B repository로 옮겨야 하는 경우
  • github -> gitlab repository로 변경 또는 그 반대인 경우

단순히 기존 A repository 의 최종 소스를 그냥 새로운 B repository로 적용하려면 간단하게 위에서 정리한 내용 적용하고 그냥 A 내용을 B로 복사만하면 된다. 그러나 단순 복사만 해서 최종 소스 상태를 commit하게 되면 당연하게도 기존 히스토리는 보지 못하게 된다. 기존 A repository의 모든 히스토리를 새로운 B repository에도 적용하려면 다음처럼 진행하면 된다.

 

일단 내용을 미리 정리하자면 다음과 같다.

  • 기존 A repository: https://github.com/projectA/A.git
  • 새로운 B repository: https://github.com/projectB/B.git

 

간단히 예를 들면, A repository가 있는 상태고, A repository를 전체 복사해서 A1 repository를 만들어놨다고 가정하자. 뭐 A1을 따로 만들 필요는 없는데 A repository를 유지하고 싶을 수도 있으니까.

 

git remote 저장소를 변경하려면 다음 명령어를 사용하면 된다.

git remote set-url origin [새로운 repository]

 

A1 repository root 폴더로 이동 후, 다음 명령어를 이용하면 간단하게 원격 저장소가 변경된다. 물론 기존 히스토리도 함께.

git remote set-url origin https://github.com/projectB/B.git

 

그리고 정상적으로 변경된 내용은 git remote 명령어를 사용하면 된다.

git remote -v

 


원래는 원격 저장소 변경에 대해 필요해서 정리하려고 했는데, 원격 저장소와 로컬 저장소 연결에 대한 내용을 검색하면 많이 나오기는 하는데 다음에 나 자신 조차 까먹을 때 다시 살펴볼 용도로 나름 좀 더 이해하기 쉽게 그림으로 넣어서 정리해 보았다.