0. 서론
분명 커밋과 푸시까지 마쳤음에도, 깃허브에 반영이 됨을 확인했음에도 깃허브 잔디가 심어지지 않는 상황을 해결하는 방법을 알려준다.
기본적인 깃허브의 레포지토리 주소를 확인하는 법, terminal을 사용하는 데 어려움이 있다면 아래 포스트를 확인하면 된다.
2023.01.25 - [Git·Github] - [Git·Github] clone부터 push까지
0-1. 왜 잔디가 심어지지 않는가?
먼저 잔디(Contribution)를 추가하기 위해서는 아래의 조건을 만족해야 한다.
1. commit한 계정이 Github 계정과 같아야 한다.
2. commit이 fork한 repository가 아니어야 한다.
3. commit이 메인 브랜치에서 일어나야 한다.
1번은 커밋을 할 때 사용하는 프로그램의 설정을 바꿔 해결하면 되는 부분이다.
3번은 메인 브랜치에 PR을 통해 merge하여 해결할 수 있다.
2023.01.25 - [Git·Github] - [Git·Github] 다른 branch에서 PR(pull request)하고 Merge하기
2번은 3번과 비슷하게 PR을 통해 해결할 수 있다.
하지만 간혹 함께 협업을 하는 repository가 아닌 그저 참고용 혹은 공부용으로 모르는 사람의 저장소를 fork한 경우라면 PR을 요청하지 못할 수도 있다.
이때의 해결법은 fork한 repository를 내 깃허브에 복사해 가져오는 방법을 사용하는 것이다.
1. git hub에 새 repository 만들기
fork한 repository의 커밋 로그, 내용 등을 복사하기 위해 새로운 repository를 생성한다.
2. fork한 repository를 bare clone
👉1번 단계에서 생성한 repository가 아닌 fork한 repository를 clone하는 것이다.
git clone --bare {복사하고자 하는 repository 주소}
3. 새 repository로 mirror push
2번 단계에서 clone된 로컬 repository로 이동한 뒤, 1번 단계에서 만든 repository 주소를 이용해 아래 명령을 실행하면 된다.
git push --mirror {새 repository 주소}
4. 기존 repository 삭제하기
정상적으로 실행이 되었다면, 깃허브에 보이지 않던 잔디가 심어진 것을 확인할 수 있다.
그럼 github에 있는 fork한 repository는 삭제해 주고, bare clone으로 인해 로컬에 저장되어 있는 폴더도 삭제해 주면 마무리된다.