소란한 블로그

[Github] fork 해온 repository 잔디 심는 방법 : repository 복사해오기 duplicate the repository 본문

Git

[Github] fork 해온 repository 잔디 심는 방법 : repository 복사해오기 duplicate the repository

소란 2021. 1. 30. 23:08

🤮 왜 나는 잔디가 안심어지는거야..?

fork 해온 repository는 pull request를 할 때만 내 깃허브에 잔디가 심어지고 commit은 contribution으로 인정되지 않는지 잔디가 심어지지 않는다.

초록 잔디로 '이만큼 열심히 했구나~~' 하는 뿌듯함을 얻기도 하는데 눈에 보여지는게 없으니 아쉬운 마음이었다.

나의 경우 부트캠프에서 깃허브를 통해 과제를 제출한다. 일주일에 한 session이 진행되고 하루에 하나씩 과제를 제출해야한다.
새로운 session이 시작되면 해당 session의 노트와 과제폼을 fork해와서 과제를 작성하여 pull request를 먼저 한번 날리고, 매일 commit을 한다. commit을 먼저 하고 pull request를 마지막에 한다면 commit에 대한 잔디가 심어지는 것 같던데, pull request를 먼저 보낸 뒤 commit을 하면 잔디가 심어지지 않다. 그래서 찾아보니..





👆 링크



잔디를 심기 위해서는 아래의 요건들이 충족되어야 한다.

  1. GitHub 계정과 commit 이메일 계정이 동일하거나
  2. commit이 Fork한 repository가 아닌 나만의 repository에서 이루어져야 한다





즉, commit이 fork한 repository에서 이루어졌기 때문에 잔디가 심어지지 않았던 것이다.



🤧 그래서 어떻게 해결해야돼..?

일단, 기존에 fork해온 repository를 지우고, 다시 repository를 생성하여 fork로 가져왔었던 프로젝트를 새롭게 clone하여 commit하고 push하는 방법이 있다. 하지만 이 방법은 이미 commit한 기록들은 다 날아가므로....pass




우리는 fork 없이 repository를 나의 깃허브로 복사해오도록 할 것이다.


fork 해온 repository를 복사해서 내 깃헙에 새로운 repository로 만드는 것이다. 이렇게 복사해오면 이전에 commit을 했던 기록도 함께 복사되어 초록 잔디를 심을 수 있다.

저작권 문제 때문에 private한 repository를 public하게 내 repository로 만드는 것은 문제가 되겠지만, 기록 용도로 private하게 만들어 참고하는 것은 괜찮을 것이다.


1. 일단 내 git hub에 새로운 레파지토리를 만든다.


👉 New 클릭


👉 Repository Name 입력하고 원하는대로 설정해준다.
👉 그 다음 Create Repository

2. terminal을 연다.

3. 복사하고자 하는 repository를 bare clone한다.


👉 복사하고자 하는 repository에 가서 저 카피 버튼을 누르면 repository 주소가 복사된다.

$ git clone --bare https://github.com/exampleuser/old-repository.git

👉 터미널에 git clone --bare를 입력하고 그 뒤에 복사해온 주소를 붙여넣기한다.


4. 새로운 레파지토리로 Mirror-push

$ cd old-repository.git
$ git push --mirror https://github.com/exampleuser/new-repository.git

👉 cd 명령어를 이용해 새로운 레파지토리로 이동한뒤

👉 3번에서 한 것과 같이 새로운 레파지토리 주소를 복사한뒤, git push --mirror 뒤에 붙여넣으면 Mirror-push가 된다.


5. 처음에 임시로 생성했던 local repository를 삭제

$ cd ..
$ rm -rf old-repository.git




그러면 안보였던 잔디가 이쁘게 심어진다!

🤸🤸🤸

Comments