테마
GitHub 원격 저장소
GitHub이란?
전 세계 개발자들이 사랑하는 인터넷 코드 저장소이자 소셜 플랫폼입니다. 로컬 저장소의 변경 이력을 GitHub에 올려 백업하거나 다른 사람과 공유할 수 있습니다.
리포지토리 생성
- GitHub 가입 후 로그인
- 우측 상단 + 버튼 → New repository 클릭
- Repository name 입력 (예:
git-test) - Public / Private 선택
- 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.pubGitHub에 등록
- GitHub → Settings → SSH and GPG keys
- New SSH key 클릭
- Title 입력, Key에 복사한 내용 붙여넣기
- 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 maingit pull - 원격에서 가져오기
원격 저장소의 최신 변경 내용을 로컬 저장소로 가져와 동기화합니다.
bash
# 원격 저장소의 최신 내용 가져오기
git pull실습: GitHub 웹에서 파일 수정 후 pull
- GitHub 리포지토리에서 파일의 연필 아이콘 클릭
- 내용 수정 후 Commit changes 클릭
- 로컬에서
git pull실행하여 동기화
git clone - 저장소 복제
공개된 원격 저장소를 내 컴퓨터로 그대로 가져오는 명령어입니다.
bash
# 저장소 복제
git clone git@github.com:facebook/react.git
# 복제된 폴더로 이동
cd react
# 파일 확인
ls회사 프로젝트에 합류할 때
입사 후 기존 프로젝트를 받아와야 하거나, 남의 프로젝트를 가져와서 기여하고 싶다면 git clone을 사용합니다.
Fork - 저장소 포크
다른 사람의 저장소를 내 계정으로 복사하여 새 리포지토리를 만드는 기능입니다.
Clone vs Fork 비교
| 구분 | git clone | Fork |
|---|---|---|
| 동작 | 저장소를 로컬에 복사 | 저장소를 내 GitHub 계정으로 복사 |
| Push 권한 | 원본에 push 불가 (권한 없으면) | 포크된 내 저장소에 push 가능 |
| 용도 | 코드 확인, 로컬 작업 | 오픈소스 기여, 독립적 개발 |
| 기여 방법 | 직접 불가 | Pull Request로 원본에 기여 |
Fork 사용 이유
다른 사람의 리포지토리에는 직접 push가 불가능합니다:
bash
# 원본 저장소에 push 시도 → 거부됨!
git push
# ERROR: Permission deniedFork를 하면 내 계정에 복사본이 생기므로 자유롭게 push할 수 있고, 이후 Pull Request를 통해 원본에 기여할 수 있습니다.
push / pull / clone / fork 전체 비교
핵심 정리
| 명령어 | 방향 | 설명 |
|---|---|---|
git push | 로컬 → 원격 | 내 커밋을 원격에 업로드 |
git pull | 원격 → 로컬 | 원격의 변경사항을 로컬에 반영 |
git clone | 원격 → 로컬 | 저장소를 통째로 복사 |
| Fork | 원격 → 내 원격 | 다른 사람의 저장소를 내 계정으로 복사 |