GitHub Private 저장소와 로컬 Git 연결하기
GitHub에서 Private 저장소를 생성한 후, 기존 로컬 Git 저장소와 연결하는 방법을 정리했습니다.
1. GitHub 저장소 생성 및 URL 복사
- GitHub에 접속하여 새로운 Private 저장소를 생성합니다.
- 저장소 페이지에서 HTTPS 또는 SSH URL을 복사합니다.
- HTTPS: https://github.com/username/repository.git
- SSH: git@github.com:username/repository.git
2. 로컬 Git 저장소와 GitHub 저장소 연결
로컬에서 이미 git init으로 초기화된 프로젝트가 있다면, GitHub 저장소와 연결해야 합니다.
2-1. 원격 저장소 등록
터미널에서 다음 명령어를 실행하여 로컬 프로젝트와 원격 GitHub 저장소를 연결합니다.
git remote add origin https://github.com/username/repository.git
SSH를 사용할 경우:
git remote add origin git@github.com:username/repository.git
2-2. 원격 저장소 연결 확인
정상적으로 연결되었는지 확인합니다.
git remote -v
출력 예시:
origin https://github.com/username/repository.git (fetch)
origin https://github.com/username/repository.git (push)
3. 기존 로컬 master 브랜치를 GitHub로 푸시
1. 현재 브랜치 확인:master 브랜치가 있는지 확인합니다.
git branch
2. master 브랜치를 원격으로 푸시:-u 옵션을 사용하면 이후 git push 시 자동으로 origin master가 설정됩니다.
git push -u origin master
4. GitHub의 기본 브랜치를 master로 변경 (선택 사항)
GitHub의 기본 브랜치는 main일 수도 있습니다. 이를 master로 변경하려면:
- GitHub 저장소로 이동
- Settings > Branches에서 Default branch를 master로 변경
5. 이후 작업 흐름
GitHub와 연결된 이후에는 아래 명령어를 사용하여 코드 변경 사항을 관리할 수 있습니다.
- 변경사항 확인:
git status - 변경사항 추가:
git add . - 커밋:
git commit -m "Update" - 원격 저장소로 푸시:
git push origin master
🚀 마무리
이제 GitHub Private 저장소와 로컬 Git을 성공적으로 연결했습니다! 🎉
$ git push -u origin master
To https://github.com/piterjk/byteweb.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://github.com/piterjk/byteweb.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.
! [rejected] master -> master (non-fast-forward) 오류는 로컬 브랜치가 원격 저장소의 브랜치보다 뒤처져 있을 때 발생합니다. 해결 방법은 다음과 같습니다.
1. 원격 브랜치와 동기화
원격 저장소에 있는 변경 사항을 로컬로 가져온 후 다시 푸시해야 합니다.
git pull origin master --rebase
이후 다시 푸시하세요.
git push -u origin master
2. 충돌 해결이 필요할 경우
위 git pull origin master --rebase 실행 후 충돌이 발생하면, 충돌을 해결한 뒤 다음 명령어를 실행하세요.
git add .
git rebase --continue
git push -u origin master
3. 원격 브랜치를 덮어쓰기 (주의!)
만약 원격 저장소의 변경 사항을 유지할 필요가 없다면 강제 푸시를 사용할 수 있습니다.
(⚠️ 주의: 원격 저장소의 변경 사항이 삭제될 수 있으므로 신중하게 사용하세요.)
git push -u origin master --force
이 방법은 기존 원격 저장소의 변경 사항을 무시하고, 로컬 브랜치의 내용을 강제로 덮어씁니다.