Skip to content

Latest commit

 

History

History
245 lines (158 loc) · 5.48 KB

File metadata and controls

245 lines (158 loc) · 5.48 KB

Remote and Local

Remote and Local
Git 에서 로컬 저장소와 원격 저장소가 무엇이고
둘이 어떻게 연결되어 동작하는지 설명하는 문서이다.

Git 을 처음 배우면
commit 했는데 GitHub 에 안 보이는 이유,
push 와 pull 이 왜 필요한지 여기서 이해할 수 있다.

핵심은
로컬과 원격은 연결되어 있지만 서로 다른 저장소라는 점이다.


1. Local 이란

Local
내 컴퓨터 안에 있는 Git 저장소를 말한다.

즉, 내가 지금 작업하고 있는 프로젝트 폴더에서
git init 하거나 clone 해서 받은 저장소가
내 로컬 저장소이다.

여기서는 인터넷이 없어도
기본적인 Git 작업이 가능하다.

예를 들어 아래는 전부 로컬에서 가능하다.

  • 파일 수정
  • git status
  • git add
  • git commit
  • branch 생성

즉, Git 은 원래 로컬 중심 도구이다.


2. Remote 란

Remote
인터넷이나 네트워크 상에 있는 Git 저장소이다.

보통 GitHub, GitLab, Bitbucket 같은 곳의 저장소가 여기에 해당한다.

원격 저장소는 주로 아래 목적에 사용한다.

  • 백업
  • 협업
  • 공유
  • 중앙 기준 저장소 역할

즉, remote 는
여러 사람이 같이 쓰는 저장소라고 생각하면 편하다.


3. 로컬과 원격은 왜 나뉘나

Git 은
내 컴퓨터에서 작업하는 공간과
공유용 저장소를 분리해서 사용한다.

이렇게 나누면 장점이 있다.

  • 인터넷 없어도 commit 가능
  • 로컬에서 충분히 정리 후 공유 가능
  • 실험 작업을 바로 공개하지 않아도 됨
  • 협업 시 공유 시점을 직접 조절 가능

즉, 로컬은 작업 공간이고
원격은 공유 공간이다.


4. commit 했는데 GitHub 에 안 보이는 이유

많이 헷갈리는 부분인데
git commit 은 로컬 저장소에만 기록한다.

즉, commit 했다고 해서
자동으로 GitHub 에 올라가는 것은 아니다.

GitHub 에 반영하려면
별도로 git push 를 해야 한다.


5. push 란

git push
내 로컬 저장소의 commit 을
원격 저장소로 올리는 명령어이다.

즉, 로컬에서 만든 기록을
GitHub 같은 원격 저장소에 반영하는 단계이다.

example: git push origin main


6. pull 란

git pull
원격 저장소의 최신 내용을
로컬 저장소로 가져오는 명령어이다.

즉, 다른 사람이 올린 변경 내용이나
원격에서 바뀐 내용을
내 컴퓨터로 반영하는 것이다.

example: git pull origin main


7. clone 이란

git clone
원격 저장소를 통째로 내 컴퓨터로 복사해 오는 것이다.

단순 파일만 복사하는 것이 아니라
Git 이력까지 포함해서 받아온다.

example: git clone <repository-url>

즉, clone 은
원격 저장소를 처음 로컬에 가져오는 시작 작업이다.


8. origin 이란

origin
보통 원격 저장소의 기본 이름이다.

예를 들어 GitHub 저장소를 연결하면
대부분 origin 이라는 이름으로 등록된다.

그래서 아래 명령이 자주 나온다.

  • git push origin main
  • git pull origin main

여기서 origin
원격 저장소 별명이라고 보면 된다.


9. 로컬과 원격의 관계

로컬과 원격은
서로 자동으로 완전히 똑같아지는 것이 아니다.

즉, 아래가 각각 필요하다.

  • 로컬 → 원격 : push
  • 원격 → 로컬 : pull

그래서 둘은 연결되어 있어도
항상 같은 상태라는 보장은 없다.


10. 협업에서 왜 중요하나

협업에서는
다른 사람이 원격 저장소에 push 한 내용을
내 로컬에 가져와야 하고,
내 작업도 원격에 올려야 한다.

즉, 협업은
로컬과 원격 사이를 계속 오가는 흐름이다.

기본적으로 아래가 반복된다.

  1. 원격 최신 내용 pull
  2. 로컬에서 작업
  3. commit
  4. 원격에 push

11. 상태가 다른 예시

예를 들어

  • 나는 로컬에서 commit 만 했고 push 안 함
  • 팀원은 원격 저장소에 이미 새 commit push 함

이 경우
내 로컬과 원격은 서로 다른 상태이다.

그래서 상황에 따라

  • 먼저 pull 해야 할 수도 있고
  • 먼저 push 가 막힐 수도 있고
  • 충돌이 날 수도 있다

즉, 로컬과 원격은
서로 별개 상태로 존재할 수 있다.


12. 자주 쓰는 명령어

원격 저장소 확인

git remote -v

원격 저장소 연결

git remote add origin <repository-url>

로컬 commit 을 원격으로 업로드

git push origin main

원격 최신 내용 가져오기

git pull origin main

원격 저장소 복제

git clone <repository-url>


13. 이해하기 쉬운 비유

아래처럼 생각해도 된다.

  • 로컬 저장소 : 내 작업실
  • 원격 저장소 : 팀 공용 창고

내 작업실에서 정리한 뒤
필요한 것만 공용 창고에 올리고,
공용 창고에 새로 들어온 것도 다시 가져오는 구조이다.


14. 한 줄 정리

로컬 저장소는
내 컴퓨터에서 작업하고 commit 하는 공간이고,
원격 저장소는
그 기록을 공유하고 협업하기 위한 별도 저장소이다.