[Git] 커밋을 해도 잔디가 안 심어질 때, fork한 repository의 커밋으로도 잔디를 심어보자, 저장소의 커밋 기록까지 전부 복사해오기 !
열심히 개발한 날엔 왠지 잔디를 한 번씩 확인해보게 된다.
잔디 심기에 푹 빠져있는 건 아니지만 그래도 채워져 있는 잔디를 보면 기분이 좋아지니까 말이다.
하지만 최근 스터디를 하면서 꽤나 열심히 커밋을 해왔는데, 잔디가 채워지지 않았길래 알아보니.
나의 repository의 커밋은 반영되지만, fork 한 repository에서의 커밋은 잔디에 적용되지 않는다고 한다.
왠지 억울하니 지금까지의 수고를 보상받기 위해 fork 한 repository의 커밋으로도 잔디를 심을 수 있는 방법을 알아보자
fork 한 repository를 새로운 repository에 복사해오는 방법
※ fork했던 'js-calculator'라는 저장소의 커밋까지 전부 'javascript-calculator'라는 개인 저장소로 복제해오는 방법을 예시로 들어 설명해보겠다.
1. 새로운 저장소를 만든다.
- private으로 새롭게 저장소를 생성한다. 이름은 원하는 대로 지어주면 된다. 예시에선 'javascript-calculator'로 생성했다.
2. fork 했던 저장소(복사하고 싶은 저장소)를 bare clone 한다.
- 'js-calculator' 저장소의 주소를 복사해 bare clone한다.
$ git clone --bare ${ fork 했던 저장소 주소 }
$ git clone --bare https://github.com/hyewon3938/js-calculator.git
3. 새롭게 만들었던 repository로 Mirror-push 한다.
- clone 했던 js-calculator.git 으로 이동한 뒤, 새로 만들었던 'javascript-calculator' 저장소의 주소로 mirror-push 해준다.
$ cd ${ fork했던 저장소 }
$ git push --mirror ${ 아까 새로 만든 저장소 주소 }
$ cd js-calculator.git
$ git push --mirror https://github.com/hyewon3938/javascript-calculator.git
4. local에 clone해서 만들었던 repository를 삭제해준다.
- local에 push를 위해서 임시로 clone 했었던 repository를 삭제해준다.
$ cd ..
$ rm -rf ${ 옛날 저장소 }
$ cd ..
$ rm -rf js.calculator.git
끝!
그대로 따라 했는데 잔디가 안 심어져요
깃헙은 default branch의 커밋 기록만 잔디에 적용을 해준다.
그렇기 때문에 본인의 코드가 default branch에 있지 않아 잔디가 심어지지 않았을 수도 있다.
저장소의 setting으로 가서 default branch를 본인의 branch로 변경해주면 잔디가 적용되는 걸 확인할 수 있다!