포스트

[GitHub 100일 챌린지] Day 25 - Repository Clone하기

[GitHub 100일 챌린지] Day 25 - Repository Clone하기

100일 챌린지 Day 25 - GitHub Repository를 내 컴퓨터로 가져옵니다

배울 내용

  1. git clone 사용하기
  2. HTTPS vs SSH 방식
  3. 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 핵심 개념을 배웁니다.

다음: Day 26 - Git 3영역 이해

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.