第3講

저장소 만들기(init/clone)

3 閲覧 1

git init으로 로컬 저장소를 만드는 방법과 git clone으로 원격 저장소를 복제하는 방법을 배운다. .git 디렉토리의 내부 구조를 이해하고 HTTPS/SSH URL의 차이를 파악한다.

저장소(Repository)란

Git 저장소는 프로젝트의 모든 파일과 변경 이력이 담긴 공간입니다. 크게 두 종류가 있습니다.

  • 로컬 저장소: 내 컴퓨터에 있는 저장소 (.git 폴더가 있는 디렉토리)
  • 원격 저장소(Remote): GitHub, GitLab 같은 서버에 있는 저장소

git init — 새 저장소 만들기

# 1. 새 폴더를 만들고 그 안에서 초기화
mkdir my-project
cd my-project
git init

# 출력:
# Initialized empty Git repository in /path/to/my-project/.git/

# 2. 기존 폴더를 저장소로 만들기
cd existing-project
git init

# 3. 폴더 생성과 동시에 초기화
git init my-project
cd my-project

git init을 실행하면 현재 디렉토리에 .git 폴더가 생성됩니다. 이 폴더가 저장소의 실체입니다.

.git 디렉토리 내부 구조

.git/
├── HEAD          # 현재 체크아웃된 브랜치 포인터
├── config        # 저장소 로컬 설정
├── description   # (GitWeb용, 일반적으로 무시)
├── hooks/        # 이벤트 훅 스크립트
├── index         # Staging Area (다음 커밋 내용)
├── objects/      # 모든 데이터 (커밋, 파일 내용)
│   ├── info/
│   └── pack/
└── refs/
    ├── heads/    # 로컬 브랜치 포인터
    └── tags/     # 태그 포인터

# HEAD 파일 내용 예시
cat .git/HEAD
# ref: refs/heads/main
절대 .git 폴더를 직접 삭제하거나 수정하지 마세요. .git을 삭제하면 전체 커밋 이력이 사라집니다. 저장소 추적을 해제하고 싶다면 rm -rf .git으로 삭제할 수는 있지만 이는 복구 불가능한 작업입니다.

git clone — 원격 저장소 복제

GitHub 등 원격 저장소를 로컬로 가져올 때 사용합니다. 단순한 다운로드가 아니라 전체 이력과 원격 연결 정보까지 복제합니다.

# HTTPS 방식
git clone https://github.com/username/repo-name.git

# SSH 방식 (SSH 키 설정이 되어 있어야 함)
git clone git@github.com:username/repo-name.git

# 폴더 이름 지정
git clone https://github.com/username/repo.git my-folder

# 특정 브랜치만 클론
git clone -b develop https://github.com/username/repo.git

# 얕은 클론 (최근 N개 커밋만, 대형 저장소에 유용)
git clone --depth 1 https://github.com/username/repo.git

HTTPS vs SSH — 언제 무엇을 쓰나

항목HTTPSSSH
인증ID + PAT 토큰SSH 키 쌍
설정 난이도쉬움초기 설정 필요
방화벽대부분 허용 (443 포트)22 포트 막힐 수 있음
편의성credential 저장 후 무관passphrase 없으면 비밀번호 불필요
추천입문자, 일회성 클론매일 작업하는 개인 저장소

클론 후 디렉토리 구조 확인

git clone https://github.com/user/project.git
cd project

# 원격 저장소 연결 확인
git remote -v
# origin  https://github.com/user/project.git (fetch)
# origin  https://github.com/user/project.git (push)

# 브랜치 확인
git branch       # 로컬 브랜치
git branch -r    # 원격 브랜치
git branch -a    # 전체 브랜치

원격 저장소 직접 연결하기

git init으로 만든 로컬 저장소를 나중에 GitHub에 연결할 때 사용합니다.

# GitHub에서 새 저장소 생성 후 URL 복사

# 원격 저장소 추가
git remote add origin https://github.com/username/repo.git

# 확인
git remote -v

# 원격 주소 변경 (HTTPS → SSH 등)
git remote set-url origin git@github.com:username/repo.git

# 원격 저장소 제거
git remote remove origin

실전 워크플로우 — 처음 시작하는 두 가지 방법

방법 1: 로컬에서 시작 → GitHub에 올리기
git init
git add .
git commit -m "first commit"
git remote add origin https://github.com/user/repo.git
git push -u origin main

방법 2: GitHub에서 시작 → 로컬로 클론
# GitHub에서 New repository 생성 (README 포함 체크)
git clone https://github.com/user/repo.git
cd repo
# 바로 작업 시작

관련 검색어  ·  git init 사용법, git clone 명령어, .git 폴더 구조, HTTPS SSH 차이, git remote add, 저장소 만들기

채용정보
공지사항
인사이트
MY