Skip to content

GitHub 원격 저장소

GitHub이란?

전 세계 개발자들이 사랑하는 인터넷 코드 저장소이자 소셜 플랫폼입니다. 로컬 저장소의 변경 이력을 GitHub에 올려 백업하거나 다른 사람과 공유할 수 있습니다.

리포지토리 생성

  1. GitHub 가입 후 로그인
  2. 우측 상단 + 버튼 → New repository 클릭
  3. Repository name 입력 (예: git-test)
  4. Public / Private 선택
  5. Create repository 클릭
설정설명
Public인터넷의 모든 사람이 코드를 볼 수 있음
Private내가 선택한 사람들만 볼 수 있음
README프로젝트 설명서 (나중에 추가 가능)
License코드 저작권 관리 방식 (MIT, Apache 등)

SSH 키 설정

GitHub과 내 컴퓨터가 안전하게 소통하기 위한 암호화된 열쇠를 설정합니다.

SSH 키 생성

bash
# SSH 키 생성 (이메일을 GitHub 가입 이메일로 변경)
ssh-keygen -t ed25519 -C "your_email@example.com"

# 파일 저장 경로: 엔터 (기본 경로 사용)
# 비밀번호: 엔터 (설정하지 않음)

공개 키 복사

bash
# Mac
pbcopy < ~/.ssh/id_ed25519.pub

# Windows
clip < ~/.ssh/id_ed25519.pub

GitHub에 등록

  1. GitHub → SettingsSSH and GPG keys
  2. New SSH key 클릭
  3. Title 입력, Key에 복사한 내용 붙여넣기
  4. Add SSH key 클릭

연결 테스트

bash
ssh -T git@github.com
# 출력: Hi username! You've successfully authenticated...

git push - 원격으로 올리기

로컬 저장소의 커밋들을 원격 저장소에 업로드합니다.

bash
# 원격 저장소 주소 등록
git remote add origin git@github.com:사용자명/git-test.git

# 기본 브랜치 이름을 main으로 설정
git branch -M main

# 원격으로 푸시 (-u: 업스트림 설정)
git push -u origin main

git pull - 원격에서 가져오기

원격 저장소의 최신 변경 내용을 로컬 저장소로 가져와 동기화합니다.

bash
# 원격 저장소의 최신 내용 가져오기
git pull

실습: GitHub 웹에서 파일 수정 후 pull

  1. GitHub 리포지토리에서 파일의 연필 아이콘 클릭
  2. 내용 수정 후 Commit changes 클릭
  3. 로컬에서 git pull 실행하여 동기화

git clone - 저장소 복제

공개된 원격 저장소를 내 컴퓨터로 그대로 가져오는 명령어입니다.

bash
# 저장소 복제
git clone git@github.com:facebook/react.git

# 복제된 폴더로 이동
cd react

# 파일 확인
ls

회사 프로젝트에 합류할 때

입사 후 기존 프로젝트를 받아와야 하거나, 남의 프로젝트를 가져와서 기여하고 싶다면 git clone을 사용합니다.

Fork - 저장소 포크

다른 사람의 저장소를 내 계정으로 복사하여 새 리포지토리를 만드는 기능입니다.

Clone vs Fork 비교

구분git cloneFork
동작저장소를 로컬에 복사저장소를 내 GitHub 계정으로 복사
Push 권한원본에 push 불가 (권한 없으면)포크된 내 저장소에 push 가능
용도코드 확인, 로컬 작업오픈소스 기여, 독립적 개발
기여 방법직접 불가Pull Request로 원본에 기여

Fork 사용 이유

다른 사람의 리포지토리에는 직접 push가 불가능합니다:

bash
# 원본 저장소에 push 시도 → 거부됨!
git push
# ERROR: Permission denied

Fork를 하면 내 계정에 복사본이 생기므로 자유롭게 push할 수 있고, 이후 Pull Request를 통해 원본에 기여할 수 있습니다.

push / pull / clone / fork 전체 비교

핵심 정리

명령어방향설명
git push로컬 → 원격내 커밋을 원격에 업로드
git pull원격 → 로컬원격의 변경사항을 로컬에 반영
git clone원격 → 로컬저장소를 통째로 복사
Fork원격 → 내 원격다른 사람의 저장소를 내 계정으로 복사