git init

한 줄 요약

현재 디렉토리를 Git 저장소로 초기화

선행 지식

  • Git 설치 - Git이 설치되어 있어야 합니다
  • 초기 설정 - 사용자 정보가 설정되어 있어야 합니다

기본 사용법

git init

현재 폴더에 .git 디렉토리를 생성하고 Git Repository로 초기화합니다.

주요 옵션

옵션설명예시
(없음)현재 폴더에 저장소 생성git init
<directory>지정 폴더에 저장소 생성git init my-project
-b <branch>초기 브랜치 이름 지정git init -b main
--barebare 저장소 생성 (서버용)git init --bare

실제 예제

기본 사용

# 1. 프로젝트 폴더 생성
mkdir my-project
 
# 2. 폴더로 이동
cd my-project
 
# 3. Git 저장소 초기화
git init
# Initialized empty Git repository in /path/to/my-project/.git/
 
# 4. 확인
ls -la
# .git 폴더가 생성됨

폴더 지정하여 초기화

# my-project 폴더를 생성하면서 바로 초기화
git init my-project
 
# 결과: my-project/.git 폴더 생성

초기 브랜치 이름 지정

# 기본 브랜치를 main으로 설정
git init -b main
 
# 또는 전역 설정으로 지정 (권장)
git config --global init.defaultBranch main
git init

init 후 첫 커밋까지

# 1. 저장소 초기화
git init
 
# 2. 파일 생성
echo "# My Project" > README.md
 
# 3. Stage에 추가
git add README.md
 
# 4. 첫 번째 커밋
git commit -m "Initial commit"
 
# 5. 상태 확인
git log --oneline
# a1b2c3d Initial commit

init vs clone

git initgit clone
새 저장소 생성기존 저장소 복제
빈 저장소로 시작히스토리 포함 복제
원격 저장소 연결 필요원격 저장소 자동 연결

→ 기존 프로젝트를 가져올 때는 git clone 사용

자주 하는 실수

이미 Git 저장소인 곳에서 init

$ git init
Reinitialized existing Git repository in /path/to/repo/.git/

결과: 기존 히스토리는 유지됨 (문제 없음)

중첩된 저장소 생성

cd my-project        # 이미 Git 저장소
cd subfolder
git init             # ⚠️ 중첩 저장소 생성!

문제: 상위 저장소가 하위 저장소를 submodule로 인식

해결:

rm -rf subfolder/.git

.git 폴더를 실수로 삭제

rm -rf .git   # ⚠️ 모든 히스토리 삭제됨!

결과: 버전 관리 히스토리 완전 삭제

예방: .git 폴더는 건드리지 않기

.gitignore 파일 추가하기

저장소 초기화 후 .gitignore 파일을 만들어 불필요한 파일을 제외합니다:

# .gitignore 파일 생성
cat > .gitignore << 'EOF'
# OS 파일
.DS_Store
Thumbs.db
 
# 의존성 폴더
node_modules/
vendor/
 
# 빌드 결과물
dist/
build/
 
# 환경 변수
.env
.env.local
EOF
 
# Stage에 추가
git add .gitignore
git commit -m "chore: .gitignore 추가"

관련 명령어

더 알아보기