git init
한 줄 요약
현재 디렉토리를 Git 저장소로 초기화
선행 지식
기본 사용법
git init현재 폴더에 .git 디렉토리를 생성하고 Git Repository로 초기화합니다.
주요 옵션
| 옵션 | 설명 | 예시 |
|---|---|---|
| (없음) | 현재 폴더에 저장소 생성 | git init |
<directory> | 지정 폴더에 저장소 생성 | git init my-project |
-b <branch> | 초기 브랜치 이름 지정 | git init -b main |
--bare | bare 저장소 생성 (서버용) | 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 initinit 후 첫 커밋까지
# 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 commitinit vs clone
| git init | git 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 추가"관련 명령어
- git clone - 원격 저장소 복제
- git status - 저장소 상태 확인
- git add - 파일을 Stage에 추가
- git remote - 원격 저장소 연결
더 알아보기
- Repository - Git 저장소의 구조
- 초기 설정 - Git 사용자 설정
- Git이란 - Git의 기본 개념