요즘 틈틈히 백준을 하루에 하나씩은 풀고 있다. 간단한 브론즈 문제 그냥 심심풀이용으로 품.

실버나 골드도 도전은 하고 있으나 내 머리가 그다지 좋은 편은 아니라.. 거의 브론즈만 푼다

 

암튼 브론즈 문제는 대충 뚝딱뚝딱하면 금방 코드를 짜는데 실버부터는 코드를 몇번씩 갈아엎어야한다.

근데 이전에 짠 코드가 잘 되던 건데 덮어쓰다가 날려먹고 "안해!!" 이런 적이 많았기 때문에..

깃허브에 레포지토리를 만들기로 결심했다.

 

처음에 폴더에 git init으로 로컬저장소 만들고, git add .으로 모든 폴더와 파일을 스테이지에 올려놓은 뒤 commit을 했다.

그 다음 원격저장소를 가져오기 위해서 https://sand-to-desert.tistory.com/40 에서 작성한 대로 아래 코드를 입력.

 

근데 위랑은 다르게, push가 안 되는거다.

 

이런 식으로 뜸.

그래도 힌트가 밑에 떠서 읽어보니까 대충 뭐.. 원격저장소의 변경사항을 먼저 가져온 다음에 push 하라는 것 같았음.

 

원격저장소는 내가 만들면서 readme 파일이 자동으로 생성되게 했기 때문에, 커밋이 하나 있었고 그 변경사항을 가져오지 않으면 push가 되지 않는 상황.

 

그래서 pull을 해보고 나서 다시 시도 했더니 또 rejected라고 떴다. 근데 위랑은 다른 게,

위에는 (fetch first)라는 문구가 있고 아래에는 (non-fast-forward)라는 문구가 있다.

 

그래서 검색해보니 이 에러가 뭐냐면

깃헙에 생성된 원격 저장소와 로컬에 생성된 저장소 간 공통분모가 없는 상태에서 병합하려는 시도로 인해 발생.
기본적으로 관련 없는 두 저장소를 병합하는 것은 안되도록 설정되어 있다.

라고 되어있었음.

 

https://velog.io/@rain98/%EA%B9%83%ED%97%88%EB%B8%8C-non-fast-forward-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0%ED%95%98%EA%B8%B0

 

위 사이트에서 나온 해결방법 1을 써봤는데 바로 해결되었다.

git pull origin main --allow-unrelated-histories

git에서는 서로 관련 기록이 없는 이질적인 두 프로젝트를 병합할 때 기본적으로 거부하는데, 이것을 허용해 주는 것이다.

 

 

보면 git pull origin main --allow-unrelated-histories 를 입력하기 전에 log는 로컬 저장소의 커밋만 나타났는데,

입력 후엔 원격저장소의 커밋도 같이 나타났다. 병합이 잘 이루어진 것을 확인할 수 있었다.

 

그리고 원격저장소에 들어가보니 코드가 다 잘 올라간 것을 확인할 수 있었음.