[Git] 팀 프로젝트 소스코드 개인 Repository로 옮기기

Yeoonnii·2023년 1월 16일
2

Git/GitHub

목록 보기
2/2
post-thumbnail

팀 프로젝트 종료 후 프로젝트의 소스코드를 포함한 commit, branch등 모든 기록을 개인 Repository로 옮기기 위해 Windows cmd에서 git 명령어를 사용할 수 있도록 설정해두었다.

git 명령어를 사용하여 Organization Repository를 개인 Repository로 옮겨보자!


순서는 아래와 같다

  1. Organization Repository의 소스코드를 내 PC(local)로 클론(clone) 받는다.
  2. 내 GitHub에 새롭게 Repository를 생성하고, 내 PC에 클론받은 소스코드를 push한다.


1. 기존 Repository 소스코드를 내 PC(local)로 클론(clone)하기

git clone시 --mirror 옵션을 주면 원격 repo의 모든 참조가 그대로 복사된다
원격 repo는 내가 클론해 올 깃허브의 Repository를 말하며, 참조는 모든 tag, branch 등을 그대로 가져온다는 뜻이다.

클론받을 폴더를 미리 만들어 둬야하며, 만들어둔 폴더의 상위 폴더에서 cmd창을 실행한 후 아래 명령어를 입력해준다.

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

ex) 클론받을 깃허브 주소 ⇒ https://github.com/xxx
내 PC에서 클론받을 폴더의 위치 ⇒ C:\code\repo

입력할 명령어 ⇒ git clone --mirror https://github.com/xxx repo



2. 내 GitHub에 새 Repository 생성

내 GitHub에 새 Repository를 생성하면 되는데 다른 파일이 존재하는 경우 conflict이 생길수도 있기 때문에 Readme, gitignore등이 없는 Repository 생성을 권장하고 있다.

새 Repository 생성 후 주소는 https://github.com/<깃허브 ID>/<Repository 이름> 형태로 구성이 된다.

cmd 창에서 클론받을 폴더로 이동한 후 내가 생성한 주소를 git remote의 파라메터로 넣어주고, push를 해주는 아래의 명령어를 입력한다.


git remote set-url origin https://github.com/<깃허브 ID>/<Repository 이름>.git

git push
  • git remote는 현재 내 PC에 있는 저장소를 원격 저장소로 연결하겠다는 의미이다.
  • 옵션 set-url은 현재 설정된 원격 저장소의 주소를 변경한다.
    기존에 다른 사람의 깃허브에 연결되어 있던 것을 내가 원하는(= 내가 새롭게 만든) 깃허브 주소로 변경할 수 있는 옵션이다.
  • 파라메터 origin은 내가 저장하는 저장소의 이름을 "origin"으로 정하겠다는 의미이다. 이 부분은 내가 알기쉬운 용어로 변경해도 되지만, 관례적으로 origin으로 사용하기 때문에 가급적 변경없이 그대로 진행한다.
  • git push를 통해 내 PC에 클론받은 폴더 전체를 방금 내가 설정한 깃허브 Repository에 그대로 옮겨놓는 작업을 진행한다.


3. 변경된 결과 확인하기

git push 이후 내 깃 허브에 들어가서 확인하거나, git remote -v 명령어로 확인도 가능하다.




프로젝트 진행시 GitHub Desktop을 이용하여 git을 관리해왔는데, git 명령어를 사용해 보니 방법은 낯설지만 조금 더 상세한 컨트롤이 가능하다는 점을 깨달았다.

GitHub Desktop이 직관적으로 보여 편리하게 사용 가능하지만, git 명령어와 옵션들을 익혀두면 앞으로 더욱 깊이있게 코드를 관리할 수 있을것 같다.



참고링크
팀 개발 프로젝트가 끝난 이후에, 해당 소스코드를 내 GitHub로 옮겨와서 이어가는 방법

1개의 댓글

comment-user-thumbnail
2024년 1월 15일

글 잘보았습니다:) 혹시 프로젝트가 종료후에 진행하는게 좋을까요? 하고있는 도중 가지고 와도 괜찮은가요?

답글 달기