git push로 로컬 커밋을 GitHub에 올리고, pull로 원격 변경사항을 내려받는 방법을 배운다. remote, origin, upstream 개념과 SSH·HTTPS 인증 방식을 이해한다.
원격 저장소(Remote Repository)란?
로컬 저장소는 내 컴퓨터에만 존재합니다. GitHub, GitLab, Bitbucket 같은 서비스가 제공하는 원격 저장소에 코드를 올리면 백업, 협업, 배포 파이프라인 연결이 가능해집니다.
remote — 원격 저장소 등록
# 원격 저장소 확인
git remote -v
# 원격 저장소 추가 (origin이 관행적인 이름)
git remote add origin https://github.com/username/repo.git
# 원격 저장소 URL 변경
git remote set-url origin git@github.com:username/repo.git
# 원격 저장소 삭제
git remote remove origin
origin은 단순한 별명(alias)입니다. 여러 원격 저장소를 추가할 수 있으며, 오픈소스 기여 시 원본 프로젝트를 upstream으로 추가하는 것이 관행입니다.
push — 로컬 커밋 업로드
# 현재 브랜치를 origin의 같은 이름 브랜치에 push
git push origin main
# -u 플래그: 이후 git push/pull만으로 자동 동기화
git push -u origin main
# 브랜치명 명시 (로컬 브랜치 → 원격 브랜치)
git push origin feature/login:feature/login
# 태그 push
git push origin --tags
# 원격 브랜치 삭제
git push origin --delete feature/old-branch
pull — 원격 변경사항 내려받기
# fetch + merge를 한 번에 (현재 브랜치)
git pull origin main
# rebase 방식으로 pull (선형 이력 유지)
git pull --rebase origin main
# 모든 원격 브랜치 최신화
git fetch --all
# 특정 원격 브랜치만 가져오기 (로컬에 반영 X)
git fetch origin feature/login
| 명령 | 동작 | 로컬 변경 |
|---|---|---|
| git fetch | 원격 정보만 다운로드 | 없음 |
| git pull | fetch + merge | 자동 머지 |
| git pull --rebase | fetch + rebase | 리베이스 적용 |
팁: 공동 작업 중에는 push 전 항상 git pull을 먼저 실행해 충돌을 로컬에서 해결한 뒤 올리는 습관을 들이세요.
HTTPS vs SSH 인증
# HTTPS 방식 (Personal Access Token 필요)
https://github.com/username/repo.git
# SSH 방식 (공개키 등록 후 비밀번호 불필요)
git@github.com:username/repo.git
# SSH 키 생성
ssh-keygen -t ed25519 -C "your@email.com"
# 생성된 ~/.ssh/id_ed25519.pub 내용을
# GitHub Settings → SSH and GPG keys 에 등록
# 연결 테스트
ssh -T git@github.com
# Hi username! You have successfully authenticated.
| 항목 | HTTPS | SSH |
|---|---|---|
| 초기 설정 | 간단 | 공개키 등록 필요 |
| 매번 인증 | 토큰 입력(캐시 가능) | 자동 |
| 보안성 | 토큰 관리 필요 | 높음 |
| 추천 환경 | 개인/임시 | 개인 장비(개발자) |
원격 브랜치 추적
# 원격 브랜치 목록 확인
git branch -r
# 로컬 + 원격 브랜치 모두 확인
git branch -a
# 원격 브랜치를 로컬로 체크아웃
git switch -t origin/feature/login
# 또는
git checkout -b feature/login origin/feature/login
# 현재 브랜치의 추적 원격 브랜치 확인
git branch -vv
실전 시나리오 — 새 프로젝트 올리기
# 1. 로컬 저장소 초기화
git init my-project
cd my-project
# 2. 파일 추가 & 첫 커밋
git add .
git commit -m "feat: 초기 프로젝트 설정"
# 3. GitHub에서 빈 저장소 생성 (웹 UI 또는 gh CLI)
gh repo create my-project --public
# 4. 원격 연결 & 첫 push
git remote add origin git@github.com:username/my-project.git
git push -u origin main
# 이후에는 git push / git pull 만으로 동기화
관련 검색어 · git push pull 차이, git remote origin, github ssh 설정, git fetch merge, 원격 저장소 연결, github 처음 올리기