[GitHub 100일 챌린지] Day 25 - Repository Clone하기
100일 챌린지 Day 25 - GitHub Repository를 내 컴퓨터로 가져옵니다
배울 내용
- git clone 사용하기
- HTTPS vs SSH 방식
- Clone 후 작업하기
Topic1. git clone 사용하기
git clone = GitHub Repository를 로컬로 복사
git clone은 단순 다운로드가 아니라 원격 저장소의 Git 기록과 연결 정보를 함께 가져오는 명령입니다. clone이 끝나면 .git 폴더와 origin remote가 자동으로 설정됩니다.
실행 전에는 “어디에 받을지”를 먼저 정하세요.
1
2
3
mkdir -p ~/projects
cd ~/projects
pwd
홈 폴더나 다운로드 폴더 여기저기에 clone하면 나중에 프로젝트를 찾기 어려워집니다. 처음부터 projects, workspace 같은 작업 폴더를 정해두면 좋습니다.
Clone 기본 사용법
해보기:
1
2
3
4
5
6
7
8
# 1. Clone할 위치로 이동
cd ~/projects
# 2. Repository Clone
git clone https://github.com/username/repository.git
# 3. 폴더 이동
cd repository
출력:
1
2
3
4
5
Cloning into 'repository'...
remote: Enumerating objects: 100, done.
remote: Counting objects: 100% (100/100), done.
remote: Compressing objects: 100% (80/80), done.
Receiving objects: 100% (100/100), done.
효과:
1
2
3
4
✅ 전체 히스토리 다운로드
✅ .git 폴더 포함
✅ 모든 파일과 폴더
✅ 최신 상태 (main 브랜치)
Repository URL 복사
GitHub에서 URL 가져오기:
1
2
3
4
5
1. Repository 페이지 접속
2. 초록색 "Code" 버튼 클릭
3. HTTPS 탭 선택
4. URL 복사
https://github.com/username/repo.git
폴더명 지정
기본 (Repository 이름):
1
2
git clone https://github.com/user/awesome-project.git
# → awesome-project/ 폴더 생성
폴더명 변경:
1
2
git clone https://github.com/user/awesome-project.git my-project
# → my-project/ 폴더 생성
실습해보기
해보기:
1
2
3
4
5
6
7
8
9
# 연습용 Repository Clone
git clone https://github.com/github/gitignore.git
# 폴더 이동
cd gitignore
# 내용 확인
ls
git log --oneline
결과: GitHub의 Repository를 로컬로 복사할 수 있습니다
clone 후에는 아래 세 가지를 바로 확인하세요.
1
2
3
git remote -v
git branch --show-current
git status --short
이 세 명령으로 “어느 원격 저장소와 연결됐는지, 현재 브랜치가 무엇인지, 작업 트리가 깨끗한지”를 한 번에 확인할 수 있습니다.
Topic2. HTTPS vs SSH 방식
Clone에는 두 가지 방식이 있습니다.
HTTPS 방식 (권장 - 초보자)
사용법:
1
git clone https://github.com/username/repo.git
장점:
1
2
3
4
✅ 설정 간단
✅ 어디서나 작동
✅ 방화벽 문제 없음
✅ 초보자 친화적
단점:
1
2
❌ Push 시 매번 인증 (처음에만)
→ Credential Helper로 해결
인증 방법:
1
2
3
Username: GitHub 사용자명
Password: Personal Access Token (PAT)
⚠️ 비밀번호 아님! Token 사용
HTTPS로 clone하는 것과 push 권한이 있는 것은 다릅니다. 공개 저장소는 누구나 clone할 수 있지만, push는 권한이 있는 사람만 가능합니다. 타인의 저장소에 기여하려면 보통 fork 후 pull request 흐름을 사용합니다.
SSH 방식 (고급)
사용법:
1
git clone [email protected]:username/repo.git
장점:
1
2
3
✅ 인증 필요 없음 (키 설정 후)
✅ 더 안전
✅ 자동화에 유리
단점:
1
2
❌ SSH 키 설정 필요 (복잡)
❌ 방화벽에서 막힐 수 있음
SSH 키 설정 (Day 9 참고):
1
2
3
4
5
6
7
8
# 1. SSH 키 생성
ssh-keygen -t ed25519 -C "[email protected]"
# 2. 공개 키 복사
cat ~/.ssh/id_ed25519.pub
# 3. GitHub에 등록
Settings → SSH keys → New SSH key
방식 비교
| 항목 | HTTPS | SSH |
|---|---|---|
| 설정 | 쉬움 | 복잡 |
| 인증 | Token | SSH 키 |
| 보안 | 안전 | 더 안전 |
| 초보자 | ✅ 권장 | ❌ |
| 전문가 | ✅ | ✅ 권장 |
권장:
1
2
초보자: HTTPS 사용
경험자: SSH 사용
판단 기준:
| 상황 | 추천 |
|---|---|
| 공개 저장소를 읽기만 함 | HTTPS |
| 내 저장소에 자주 push | SSH 또는 HTTPS credential helper |
| 회사 네트워크에서 SSH가 막힘 | HTTPS |
| 자동화/CI에서 접근 | 전용 토큰 또는 deploy key |
결과: Clone 방식의 차이를 이해합니다
Topic3. Clone 후 작업하기
Clone 한 Repository에서 작업하는 방법입니다.
Repository 상태 확인
해보기:
1
2
3
4
5
6
7
8
9
10
11
# 현재 브랜치 확인
git branch
# Remote 확인
git remote -v
# 상태 확인
git status
# 로그 확인
git log --oneline -5
출력:
1
2
3
4
5
* main
origin https://github.com/user/repo.git (fetch)
origin https://github.com/user/repo.git (push)
On branch main
Your branch is up to date with 'origin/main'.
origin은 clone한 원격 저장소의 기본 별명입니다. 나중에 remote가 여러 개 생길 수 있지만, 처음에는 origin이 GitHub 저장소를 가리킨다고 이해하면 됩니다.
파일 수정하기
해보기:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 1. 파일 수정
echo "## Installation" >> README.md
# 2. 상태 확인
git status
# 3. 스테이징
git add README.md
# 4. 커밋
git commit -m "Add installation section"
# 5. 히스토리 확인
git log --oneline -3
Remote와 동기화
최신 변경사항 가져오기:
1
git pull
내 변경사항 업로드:
1
git push
⚠️ Push 권한 필요:
1
2
3
본인 Repository: ✅ 가능
타인 Repository: ❌ 불가능
→ Fork 후 PR 필요
작업 전에는 git pull로 최신 상태를 가져오고, 작업 후에는 git status --short가 깨끗한지 확인한 다음 git push를 실행하는 흐름을 추천합니다.
1
2
3
4
5
6
git pull
git status --short
# 작업
git add README.md
git commit -m "Update README"
git push
Clone vs Download ZIP
차이점:
1
2
3
4
5
6
7
8
9
10
11
git clone:
✅ .git 폴더 포함
✅ 전체 히스토리
✅ git 명령어 사용 가능
✅ Pull/Push 가능
Download ZIP:
❌ .git 폴더 없음
❌ 히스토리 없음
❌ git 명령어 불가
❌ 일회용 다운로드
언제 뭘 사용?:
1
2
개발/협업: git clone
단순 파일 보기: Download ZIP
실습 프로젝트
해보기: 자신의 Repository Clone하기
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 1. GitHub에서 my-first-repo URL 복사
# 2. 로컬에 Clone
git clone https://github.com/username/my-first-repo.git
# 3. 폴더 이동
cd my-first-repo
# 4. 파일 수정
echo "Local edit" >> README.md
# 5. 커밋
git add README.md
git commit -m "Edit from local"
# 6. Push
git push
결과: Clone한 Repository에서 작업하고 동기화할 수 있습니다
자주 하는 실수
| 실수 | 증상 | 해결 |
|---|---|---|
| 같은 폴더에 두 번 clone | destination path already exists | 다른 폴더명 지정 또는 기존 폴더 사용 |
| ZIP 다운로드 후 git 명령 실행 | .git 저장소가 아니라고 나옴 | git clone으로 다시 받기 |
| push 권한 없는 저장소에 push | permission denied | fork 후 PR 또는 권한 요청 |
| 잘못된 계정 credential 사용 | 다른 계정으로 인증됨 | credential helper에서 계정 정리 |
에러가 나면 URL, 현재 폴더, 권한 세 가지를 먼저 확인하세요.
정리
완료 체크:
- git clone을 사용할 수 있다
- HTTPS와 SSH 차이를 안다
- Clone 후 작업할 수 있다
- clone 후
origin, 현재 브랜치, 작업 상태를 확인할 수 있다 - push 권한이 없는 저장소에서는 fork/PR 흐름이 필요함을 안다
핵심 명령어:
1
2
3
4
5
6
git clone URL # Repository 복사
git clone URL 폴더명 # 폴더명 지정
git remote -v # Remote 확인
git branch --show-current # 현재 브랜치 확인
git pull # 최신 가져오기
git push # 업로드
Clone 방식:
1
2
3
4
5
HTTPS (초보자):
git clone https://github.com/user/repo.git
SSH (경험자):
git clone [email protected]:user/repo.git
Week 5 완료! 🎉
다음 주에는 Git 핵심 개념을 배웁니다.
