Git

[Github] Repository 옮기기

JM_Code 2022. 12. 20. 19:28

1. 오리지널 repo의 소스코드를 clone 한다.

git clone --mirror <오리지널 repo 주소> <내 로컬 폴더>

clone 예

 

2. 내 깃 허브에 기존 프로젝트를 이어서 갈 용도로 새롭게 repo를 만들고 연결한다.

이 때, Readme, gitignore 등이 없는 완전히 비어있는 repo를 만드는 것을 추천한다. 아마도 다른 file이 존재하면 push할 때 뭔가 conflict이 생길수도 있기 때문에 이를 방지하는 용도인것 같다.

 

repo를 만들고 나면, 이제 그 주소를 복사한다. 주소는 이러한 형태로 구성이 되어있다.

 

https://github.com/<내 깃허브 ID>/

 

예를 들어, 내 ID가 Jxnmin이고 zipchak라는 깃 repo를 생성했다면, https://github.com/Jxnmin/zipchak.git 이 주소가 된다. 

 

이제 command 창에서 프로젝트 폴더로 이동한 다음에 아래의 명령어를 입력한다.

cd /Users/jm/Desktop/BitCamp/project/zipchak

git remote set-url origin https://github.com/Jxnmin/zipchak.git

git push

터미널 예시

즉, 내가 생성한 주소를 git remote의 파라메터로 넣어주고, push를 해주면 되겠다.

 

여기서 위 명령어의 옵션 및 파라메터에 대해서 하나씩 해부해 보겠다.

 

remote란, remote repository(원격 저장소)를 지칭하며 내 PC가 아닌 네트워크 상에 존재하는 저장소를 말한다. 즉, 여러 사람이 공동 작업할 수 있는 오리지널 저장소를 remote라고 부른다. 이 오리지널 저장소는 별도의 서버가 될 수도 있고, GitHub 혹은 GitLab과 같은 공간이 될 수도 있다.

 

git remote는 현재 내 PC에 있는 저장소를 원격 저장소로 연결하겠다는 의미이다.

 

옵션 set-url은 현재 설정된 원격 저장소의 주소를 변경한다. 즉, 기존에 다른 사람의 깃허브에 연결되어 있던 것을 내가 원하는(즉, 내가 새롭게 만든) 깃허브 주소로 변경할 수 있는 옵션이다.

 

파라메터 origin은 내가 저장하는 저장소의 이름을 "origin"으로 정하겠다는 의미이다. 이 부분은 내가 알기쉬운 용어로 변경해도 되지만, 관례적으로 origin으로 사용하기 때문에 가급적 변경없이 그대로 가도록 한다.

 

이제 위의 명령어에 대한 해부가 끝났고, 다시 한번 해석하자면 "현재의 폴더가 연결된 원격 저장소의 주소를 끊고 새롭게 https://github.com/Jxnmin/zipchak.git 로 연결해라. 그리고 연결할 때 저장소의 이름은 origin으로 해라." 라는 의미가 된다.

 

그리고 연결을 하고 나면, git push를 통해 현재 내 PC에 있는 폴더 전체를 방금 내가 설정한 깃허브 repo에 그대로 옮겨놓는 작업을 한다.

 

 

3. 변경이 잘 되었는지 확인한다.

git push 이후에 내 깃 허브에 들어가서 직접 확인을 해도 되고, 아래와 같이 command를 넣어서 확인도 가능하다.

git remote -v