Git의 기초 2.5 — 리모트 저장소

2025. 12. 15. 12:38Git/Git 기초

핵심 개념

  • 팀 또는 외부와 협업할 때 사용하는 인터넷/네트워크 상의 저장소를
    리모트 저장소(Remote Repository) 라고 한다.
  • 로컬 저장소에서 작업한 내용을
    Push(업로드) 하고,
    원격의 변경사항을 Pull / Fetch(가져오기) 하며 관리한다.

출처
👉 https://git-scm.com/book/ko/v2/Git의-기초-리모트-저장소


1️⃣ 리모트 저장소란 무엇인가

  • 리모트 저장소는 물리적으로 멀리 있는 서버(GitHub 등)일 수도 있고,
    같은 컴퓨터의 다른 디렉토리일 수도 있다.
  • 하나의 프로젝트에 여러 개의 리모트 저장소를 설정할 수 있다.
  • 리모트 저장소는 권한에 따라
    • 읽기 전용(Read only)
    • 읽기 / 쓰기(Read & Write)
      로 나뉜다.

협업의 기본 흐름

로컬에서 작업
→ git push (리모트에 업로드)
→ 다른 사람이 git pull / git fetch
→ 병합 후 다시 작업

2️⃣ 리모트 저장소 등록 상태 확인

현재 프로젝트에 등록된 리모트 저장소의 이름(단축 이름) 을 확인한다.

git remote

보통 기본 리모트 이름은 origin 이다.

리모트의 URL까지 함께 확인하려면:

git remote -v

출력 예시:

origin  https://github.com/user/repo.git (fetch)
origin  https://github.com/user/repo.git (push)

리모트가 여러 개라면 다음과 같이 표시된다.

origin    URL1 (fetch)
origin    URL1 (push)
upstream  URL2 (fetch)
upstream  URL2 (push)
  • origin : 내가 작업하는 메인 원격 저장소
  • upstream : 원본 저장소(포크한 경우 자주 사용)

3️⃣ 리모트 저장소 추가

로컬 저장소에 새로운 리모트 저장소를 등록할 때 사용한다.

git remote add <리모트이름> <URL>

예시:

git remote add origin https://github.com/paulboone/ticgit

등록 후 다시 확인:

git remote -v

👉 새 리모트가 정상적으로 추가되었는지 반드시 확인하는 습관을 들이자.


4️⃣ 원격 저장소에서 데이터 가져오기 & 반영하기

🔹 Fetch — 가져오기만 (자동 병합 ❌)

git fetch <리모트이름>
  • 원격 저장소의 변경사항을 로컬로만 가져온다
  • 내 작업 브랜치에는 아무 영향도 주지 않는다
  • 안전하게 변경사항을 먼저 확인하고 싶을 때 사용

🔹 Pull — 가져오기 + 병합 (자동 병합 ⭕)

git pull <리모트이름> <브랜치>
  • fetch + merge 를 한 번에 수행
  • 원격 변경사항을 바로 현재 브랜치에 반영

🔹 Push — 로컬 변경사항을 원격에 업로드

git push -u <리모트이름> <브랜치>

예시:

git push -u origin main
  • 처음 Push 할 때만 -u 옵션 사용
  • 이후에는 아래처럼 간단히 사용 가능:
git push

-u 옵션의 의미

  • 현재 로컬 브랜치와 원격 브랜치를 연결(upstream 설정) 한다.
  • 한 번 설정하면 이후 git push, git pull 시
    자동으로 해당 브랜치를 기준으로 동작한다.

⚠️ 주의 사항

  • 다른 사람이 이미 Push한 변경사항이 있다면
    반드시 먼저 Pull / Merge 후 Push 해야 충돌을 피할 수 있다.
  • 새 브랜치를 처음 원격에 올릴 때는
    브랜치 이름을 반드시 명시해야 한다.
git push origin 브랜치이름

5️⃣ 리모트 저장소 정보 보기

리모트 저장소의 상세 정보를 확인할 때 사용한다.

git remote show <리모트이름>

출력 예시:

* remote origin
  Fetch URL: https://github.com/my-org/complex-project
  Push  URL: https://github.com/my-org/complex-project
  HEAD branch: master
  Remote branches:
    master      tracked
    dev-branch  tracked
  Local branch configured for 'git pull':
    master merges with remote master
  Local refs configured for 'git push':
    master pushes to master (up to date)

이 정보를 통해 다음을 확인할 수 있다.

  • 로컬 브랜치 ↔ 원격 브랜치 연결 관계
  • 어떤 브랜치가 추적(tracking) 중인지
  • 기본 Pull / Push 대상 브랜치

✅ 요약 정리


📘 참고 자료