포스트

[GitHub 100일 챌린지] Day 24 - 로컬 저장소 초기화하기

[GitHub 100일 챌린지] Day 24 - 로컬 저장소 초기화하기

100일 챌린지 Day 24 - 내 컴퓨터에 Git Repository를 만듭니다

배울 내용

  1. git init으로 저장소 만들기
  2. .git 폴더 이해하기
  3. 첫 파일 추가하기

Topic1. git init으로 저장소 만들기

git init = Git Repository 초기화

새 프로젝트 시작

해보기:

1
2
3
4
5
6
7
8
9
10
# 1. 프로젝트 폴더 생성
mkdir my-project
cd my-project

# 2. Git 저장소 초기화
git init

# 3. 확인
ls -la  # Mac/Linux
dir /a  # Windows

출력:

1
Initialized empty Git repository in /path/to/my-project/.git/

효과:

1
2
3
✅ .git 폴더 생성
✅ Git이 이 폴더를 추적하기 시작
✅ Repository가 됨

기존 폴더를 Repository로

해보기:

1
2
3
4
5
# 기존 프로젝트 폴더로 이동
cd existing-project

# Git 초기화
git init

주의:

1
2
3
⚠️ 이미 파일이 있어도 OK
⚠️ git init은 한 번만 실행
⚠️ 중복 실행해도 안전함

기본 브랜치 이름 지정

해보기:

1
2
3
4
5
# main 브랜치로 시작 (권장)
git init -b main

# 또는
git init --initial-branch=main

Day 23 설정 적용됨:

1
2
3
4
# Day 23에서 설정했다면:
git config --global init.defaultBranch main

# 이제 git init만 해도 main으로 생성

결과: 로컬 폴더가 Git Repository가 됩니다


Topic2. .git 폴더 이해하기

. git = Git의 모든 정보가 담긴 폴더

.git 폴더 구조

해보기:

1
2
3
4
5
# .git 폴더 내용 보기
ls -la .git

# 또는 트리 구조
tree .git  # tree 명령어 설치 필요

주요 파일/폴더:

1
2
3
4
5
6
7
8
9
.git/
├── config         # Repository 설정
├── description    # 설명 (웹용)
├── HEAD           # 현재 브랜치 포인터
├── hooks/         # Git Hook 스크립트
├── info/          # 제외 패턴
├── objects/       # 모든 커밋/파일 저장
├── refs/          # 브랜치/태그 참조
└── (추가 파일들)

HEAD 파일

해보기:

1
cat .git/HEAD

출력:

1
ref: refs/heads/main

의미:

1
현재 main 브랜치를 가리킴

config 파일

해보기:

1
cat .git/config

내용 예시:

1
2
3
4
5
6
[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
[remote "origin"]
    url = https://github.com/username/repo.git

objects 폴더

Git의 데이터베이스:

1
2
3
4
5
6
7
objects/
├── 2a/   # 객체 해시 첫 2자리
│   └── 3f5b...  # 나머지 해시
├── 4d/
└── ...

모든 커밋, 파일, 트리 저장

주의사항

1
2
3
4
5
6
7
8
⚠️⚠️⚠️ .git 폴더 삭제 금지! ⚠️⚠️⚠️

삭제하면:
❌ 모든 히스토리 사라짐
❌ 복구 불가능
❌ 일반 폴더로 변함

.git 폴더가 곧 Git Repository!

결과: .git 폴더의 역할을 이해합니다


Topic3. 첫 파일 추가하기

Repository를 만들었으니 파일을 추가해봅시다.

파일 생성

해보기:

1
2
3
4
5
6
7
# README.md 생성
echo "# My Project" > README.md

# 또는 에디터로
code README.md  # VS Code
nano README.md  # Nano
vim README.md   # Vim

상태 확인

해보기:

1
git status

출력:

1
2
3
4
5
6
7
8
9
On branch main

No commits yet

Untracked files:
  (use "git add <file>..." to include in what will be committed)
	README.md

nothing added to commit but untracked files present

의미:

1
2
3
🔴 README.md = Untracked (추적 안 됨)
→ Git이 아직 모르는 파일
→ git add 필요

git add로 스테이징

해보기:

1
2
git add README.md
git status

출력:

1
2
3
Changes to be committed:
  (use "git rm --cached <file>..." to unstage)
	new file:   README.md

의미:

1
2
3
🟢 README.md = Staged (스테이징됨)
→ 커밋 준비 완료
→ git commit 가능

git commit으로 저장

해보기:

1
git commit -m "Initial commit"

출력:

1
2
3
[main (root-commit) a1b2c3d] Initial commit
 1 file changed, 1 insertion(+)
 create mode 100644 README.md

확인:

1
git status

출력:

1
2
On branch main
nothing to commit, working tree clean

의미:

1
2
✅ 모든 변경사항 커밋됨
✅ Working directory 깨끗함

히스토리 확인

해보기:

1
git log

출력:

1
2
3
4
5
commit a1b2c3d4e5f6...
Author: 홍길동 <hong@example.com>
Date:   Mon Jan 24 09:00:00 2025 +0900

    Initial commit

간단히 보기:

1
git log --oneline

출력:

1
a1b2c3d Initial commit

결과: 첫 파일을 추가하고 커밋했습니다


정리

완료 체크:

  • git init으로 저장소를 만들었다
  • .git 폴더의 역할을 이해했다
  • 첫 파일을 커밋했다

핵심 명령어:

1
2
3
4
5
git init              # Repository 초기화
git status            # 상태 확인
git add 파일명        # 스테이징
git commit -m "메시지" # 커밋
git log               # 히스토리 확인

워크플로우:

1
2
3
4
5
1. 폴더 생성 (mkdir)
2. Repository 초기화 (git init)
3. 파일 생성/수정
4. 스테이징 (git add)
5. 커밋 (git commit)

중요:

1
2
.git 폴더 = Git Repository
삭제하면 히스토리 전부 사라짐!

다음: Day 25 - Repository Clone하기

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