운연의 개발 블로그 RSS 태그 관리 글쓰기 방명록
Programming/Git Hub (1)
2022-02-09 16:09:17

Git을 배운 건 작년 즈음이다. 컴공과 출신으로 따지자면 꽤나 늦었다고 할 수 있을 것 같다. 그만큼 나는 협업을 많이 하지도 않았고, 따로 포트폴리오를 만들어 올릴 생각도 전혀 못 했던 탓이었다.

 

그러나 개발자라면 역시 Git을 배우게 되는 시기가 오는 것 같다. 그리고 그 시기가 나는 작년이었고, Git을 통해 포트폴리오를 올리고, 팀과 협업을 배우는 것은 올해가 될 것 같다. 졸작으로 인해 팀으로 프로젝트를 하게 되었고, 우리는 유니티 협업 기능을 쓰기보다는 Git을 배우기로 했다.

 

일단은 Branch Merge부터 알아보도록 하자. 순서가 엉망진창이지만 내가 당장 필요했던 건 이것이었으므로, 누군가도 이 지식을 필요로 할 지 누가 알까.

 

일단 Git Branch에서 Main Branch로 병합하기 위해서는 commit 상태여야 한다. (push 상태도 되는 진 모르겠다. 근데 아마 될 것 같기도 하다.) Git commit까지 한 상태라면, 내 Branch에서 병합하고 싶은 Branch, 나의 경우는 내 Branch를 main으로 병합하고 싶었으니까 main Branch로 이동을 한다. Branch 변경 명령어는 아래와 같다.

 

git checkout main #main부분에 원하는 branch 이름을 넣으면 된다.

 

아래와 같이 이동한 후에는 간단하다.

내 branch, 혹은 내가 병합하기 원하는 branch를 merge 해주면 된다.

 

git merge mybranch #mybranch 부분에 본인의 branch 이름을 적으면 된다.

 

여기까지 왔으면 대부분 끝났다. merge는 끝이다.

근데 Git 외부 저장소로 가보니까 파일이 올라가 있지 않는 것이다.

별별 검색을 다 해봤다.

 

병합은 됐는데 파일이 안 올라가요.

How to merge branch in git?

merge isn't fail, but there is no file.

 

결론적으로는 merge 역시 commit 작업 중 하나이므로 push 하지 않으면 올라가지 않는다는 것이었다. 그러니까 merge 했는데 왜 파일이 저장소에 안 올라가지? 하시는 분들은 꼭 push 하시길 바란다.

 

즉 merge의 마지막 단계는 아래와 같다.

 

git push origin main

 

그리고 나는 여기서 오류가 한 번 더 생겼었다.

 

! [rejected]        main -> main (fetch first)
error: failed to push some refs to 'repository의 주소'

 

아직도 이유는 모르겠다. 어째서 이런 오류가 생기는지, 근데 해결법은 찾았다. main 앞에 +기호를 써주면 push가 잘 되었다. 문제는 왜 +기호를 쓰면 push가 되는지 전혀 모르겠다는 점이다. 강제 실행의 의민가?

 

어쨌든 오류가 난다면 아래와 같이 git bash에 입력하자.

 

git push origin +main