GitHub에 저장소 만들고 작성한 코드 올리기
상황
- 포트폴리오를 작성중입니다. 완성된 정적페이지를 깃허브에 올리고 깃허브 페이지로 보고싶습니다.
- 로컬의 코드를 저장소에 올리고싶습니다.
- 로컬에서 코드작성이 완료되었고, 깃허브에 저장소를 만들었습니다.
- git clone까지 한 상태입니다.
- visual studio code를 이용해서 커밋은 완료된 상태입니다.
진행한 순서
- git remote -v
- 리모트 저장소 확인하기
- 저장소 이름과 url함께 볼 수 있다.
origin https://github.com/devham76/resume.git (fetch) origin https://github.com/devham76/resume.git (push)
- Clone 하면 보통 자동으로 origin 이름이 생성된다
※원격 저장소란?(Remote Repository)
- 내 로컬pc 저장소가 아닌 네트워크상의 다른 위치에 존재하는 git저장소를 말한다.
- git push origin master
- git push <리모트 저장소="" 이름=""> <브랜치 이름="">브랜치>리모트>
- master 브랜치를 origin서버에 push한다
주의) 이 명렁은 clone한 리모트 저장소에 쓰기 권한이 있고, clone하고 난 후에 아무도 저장소에 push하지 않았을 때만 사용가능하다.
- clone한 사람이 여러 명 일때, 다른 사람이 push한 후에 push할 수 없다. 먼저 다른 사람이 작업한 것을 가져와서 merge한 후에 push할 수 있다.
오류1.
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/devham76/resume.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
원인
- 현재 작업하고 있는 Repository가 서버에 있는 Repository보다 오래된 내용이다. push를 하게 되면 서버에 있는 최신 내용은 날라가고 현재 작업내용만 적용이 되는 문제가 발생할 수 있기 때문에 오류 발생.
해결방법
- 최신 내용을 local에 적용 하기
- git pull 명령을 이용하면 기존에 작업한 내용에 최신 내용을 덧붙이가 된다.
- local에 자동으로 최신 소스가 merge됨
원격지에서 최신 내용을 먼저 받아오고 (pull), 제가 작업한 내용과 합쳐서 올려야합니다.
git pull origin master
오류2
PS C:\Users\ComPuter\dev\clark\clark> git pull origin master
From https://github.com/devham76/resume
* branch master -> FETCH_HEAD
fatal: refusing to merge unrelated histories
원인
- 원격 저장소와 로컬에 생성된 저장소 간 공통분모가 없는 상태에서 병합하려는 시도로 인해 발생.
- 기본적으로 관련 없는 두 저장소를 병합하는 것은 안되도록 설정되어 있음
해결
git pull origin master --allow-unrelated-histories
한줄 코멘트
- 이고잉님의 git 오프라인 특강도 들었는데, 직접 적용해보지 않아서 다시 제자리로 돌아갔다.
- 공부할때는 꼭꼭꼭 실습을 통해 공부해볼것!
- 아직 갈길이 멀었구나 열심히 공부해야지