[github] fork 한 repository 잔디 안 심어질 때 + non-fast-forward 및 default branch 관련 에러 해결방법

2021. 9. 26. 23:14Git || Github

 

조 프로젝트 이후에 우리 조의 프로젝트를 나의 깃 헙 저장소로 fork 해서 commit push 했더니..

전에 PR 보내서 merge 했던 방법으로는 잔디가 심어졌는데 위의 커밋 푸시만 해서는 따로 생기지 않았다

알고 보니 fork 한 repository에서의 commit은 잔디에 따로 적용되지 않는다고 한다.

나의 커밋이 잔디밭에 적용되기 위해선,

깃 헙 계정과 commit 이메일 계정이 동일 or commit이 나의 repository에서 이루어져야 한다 (fork 한 repository는 X)

 

구글에 fork해온 repositiory 잔디 심는 방법 검색하면 같은 방법들이 나와서 따라 했는데

나는 commit push 하는 과정에서, 친구는 push --mirror 과정 에러 에러가 발생했다.

혹여나 우리와 같은 상황에 놓인 사람들에게 조금이나 도움이 되고자 해결방법을 정리해봤다 (우리는 무려 2시간 가까이 삽질을 했다..)

 

 

 

기존의 팀 프로젝트를 나의 깃헙으로 fork 해온 후, forked repository를 commit push하는 모든 이력이 내 저장소에 있는 프로젝트에만 적용 + 깃헙 잔디밭에 잔디가 심어질 수 있도록 하는 방법

 

 

 

여기서

The_seat은 forked repository,

The_seat_project는 내가 직접 생성한 new repository이다

 

 

우선 터미널을 실행시킨 후

 

 

바탕화면에 project_the_seat (new repository) 생성 후

 

git init    //git 생성

git clone --bare [forked repository]   //fork 한 repository 클론

 

를 입력한다

 

---------------

 

그 후에, forked repository (기존의 팀 프로젝트) 폴더 경로에서

 

git push --mirror [new repository]  

 

본인의 깃헙에 직접 생성 한 repository의 주소를 입력한다.

 

--------------

 

그리고 다시 new repository 폴더로 경로 이동하여

 

rm -rf [forked repository]

 

forked repository를 삭제해주었다.

 

--------------

 

 

 

 

대부분이 이 과정까지 하면 문제없이 잘 동작될 텐데,

나는 rejected non-fast-forward라는 문제로 인해 commit이 안 되는 문제가 생겼고,

옆에서 같이 한 친구는 push mirror 가 제대로 작동하지 않는 에러가 발생했다.

 

우선, commit push를 하려는 순간 non-fast-forward 가 나타나면

 

 

https://tychejin.tistory.com/168

 

[Eclipse] Github - rejected-non-fast-forward 오류

1.Git Repositories에서 프로젝트를 선택 한 후 Remotes > origin -> 오류가 발생하는 저장소 우클릭 -> Configure Fetch... 또는 Configure Push... 클릭 2.Advanced 클릭 3.Specifications for fetch에 추가된..

tychejin.tistory.com

 

 

이분의 블로그를 참고해보길 추천한다

난 이 과정을 따라 했더니 다행히 해결이 되었다.

 

 

 

그리고 내 친구와 같이

터미널에서 push --mirror를 하는 도중에 main 어쩌고.. 하면서 빨간색 글씨로 에러가 발생하면

거의 100% (?) 새로운 레포지토리를 생성하는 과정에서 README.md 파일을  추가한 경우 일 것이다

레포지토리 생성 과정에서 Add a README file 옵션을 클릭하면 기본 default branch가 master가 아닌 main으로 설정된다.

친구의 forked repository의 branch에 main이 없어서인지 이로 인한 에러가 발생했고

 

 

 

 

이미 새로운 레포지토리를 생성한 경우, 프로젝트의 Settings에서 사이드바의 Branches 클릭 후,

Default branch명을 변경해줘야 한다. 그리고 다시 push --mirror를 해보면 정상적으로 잘 될 것이다 :)

반응형