Git 기초 실습 예시

AI가 만든 변경을 내 컴퓨터 안에서 커밋으로 안전하게 다루는 단계별 실습  |  ← 매뉴얼로 돌아가기

대상 버전git 2.5x (2.50.1 기준)
이 파일의 목적매뉴얼의 명령을 실제 작업 흐름에 묶어, 따라 하며 익히도록 보완합니다 (로컬 Git만 다룸)
레퍼런스 문서GitBasics_Manual.html — 각 시나리오에서 링크로 연결됩니다
작성일2026년 6월 16일
● 초급 Getting Started AI가 만든 변경을 처음으로 커밋해 내 컴퓨터에 기록으로 남기는 첫 단계
G-1 초급 AI 변경 첫 커밋 남기기
바이브 코딩으로 만든 작은 웹페이지 폴더(my-site)가 있고, AI에게 "메인 페이지에 소개 문구를 추가해 줘"라고 시켜 index.html이 바뀌었습니다. 아직 Git을 한 번도 적용하지 않은 폴더입니다. 이 폴더를 저장소로 만들고 → 첫 커밋까지 남기는 것이 목표입니다.
단계별 실행
  1. (최초 1회) 내 이름·이메일 설정

    커밋에 작성자로 기록됩니다. 컴퓨터에서 한 번만 하면 이후 모든 저장소에 적용됩니다.

    git config --global user.name "Hong Gildong"
    git config --global user.email "you@example.com"
  2. 프로젝트 폴더로 이동해 저장소 초기화

    git init -b main.git 폴더를 만들어 추적을 시작하고, 기본 브랜치를 main으로 잡습니다.

    cd ~/projects/my-site
    git init -b main
  3. 무엇이 추적될지 상태 확인

    아직 추적되지 않은(빨간색) 파일들이 보입니다. AI가 만진 index.html도 여기 있습니다.

    git status
  4. 전부 스테이징하고 메시지를 붙여 커밋

    첫 버전이 저장소에 기록됩니다. 메시지는 무엇을 했는지 한 줄로 요약합니다.

    git add .
    git commit -m "프로젝트 첫 커밋: 메인 페이지 소개 문구 추가"
  5. 커밋이 남았는지 확인

    방금 만든 커밋이 히스토리에 한 줄로 보이면 성공입니다. 앞으로 모든 변경은 이 첫 커밋 위에 쌓입니다.

    git log --oneline
git add는 변경을 스테이징 영역(index)에 올려 "이번 커밋에 담을 것"으로 표시하고, git commit은 그 스테이징된 내용만 묶어 스냅샷으로 저장합니다. 여기까지는 모두 내 컴퓨터 안에서만 일어나는 일이라 인터넷이 필요 없습니다.
막히면 언제든 git status를 치세요. 지금 무엇이 스테이징됐고 다음에 뭘 하면 되는지 Git이 안내해 줍니다. 커밋 메시지는 "수정" 같은 모호한 말 대신 "소개 문구 추가"처럼 구체적으로 적어야 나중에 git log만 봐도 흐름이 읽힙니다.
● 중급 Daily Workflow AI가 한 번에 쏟아낸 거대한 변경을 의미 단위 작은 커밋으로 정리하는 실무 흐름
D-1 중급 큰 변경을 작은 커밋으로 쪼개기
이미 git init이 된 프로젝트에서, AI에게 "DB 연결 코드 리팩터링하고 로그인 로직도 정리해 줘"라고 한 번에 시켰더니 app.py 한 파일 안에 DB 관련 변경과 로그인 관련 변경이 한꺼번에 들어왔습니다. 통째로 커밋하면 나중에 한쪽만 검토·되돌리기 어렵습니다. 한 파일 안의 변경을 의미 단위(DB만 / 로그인만) 두 커밋으로 쪼개는 것이 목표입니다.
단계별 실행
  1. hunk 단위 대화형 스테이징 시작

    -p를 붙이면 변경 덩어리(hunk)마다 올릴지 물어봅니다. DB 관련 hunk에는 y, 로그인 관련 hunk에는 n으로 답해 DB 변경만 먼저 스테이징합니다. (덩어리가 너무 크면 s로 더 잘게 나눕니다.)

    git add -p app.py
  2. 이번에 담길 내용만 검토

    스테이징된(곧 커밋될) 변경만 따로 확인해, DB 관련 변경만 올라갔는지 검증합니다.

    git diff --staged
  3. 첫 번째 의미 단위 커밋(DB)

    DB 변경만 담아 커밋합니다. 로그인 변경은 아직 작업 폴더에 그대로 남아 있습니다.

    git commit -m "DB 연결 코드 리팩터링"
  4. 남은 변경을 두 번째 커밋(로그인)

    이제 남은 변경은 로그인 관련뿐이므로 파일 전체를 올려 커밋합니다.

    git add app.py
    git commit -m "로그인 로직 정리"
  5. 깔끔하게 나뉜 커밋 확인

    한 덩어리 변경이 두 개의 의미 있는 커밋으로 갈라졌는지 확인합니다.

    git log --oneline
git add -p는 같은 파일 안의 변경도 hunk 단위로 골라 index에 올립니다. 그래서 한 번에 쏟아진 AI 변경을 "DB 커밋 / 로그인 커밋"처럼 주제별로 분리할 수 있고, 나중에 한쪽만 되돌리기도 쉬워집니다. add -p의 선택지는 y(담기) n(건너뛰기) s(더 잘게 쪼개기) q(종료)이며, 모르겠으면 ?로 도움말을 봅니다.
DB 변경과 로그인 변경이 같은 줄에 얽혀 한 hunk에 섞여 있으면 y/n만으로는 못 가릅니다. 이때는 s로 더 잘게 쪼개거나 e로 직접 편집해야 합니다. 한 줄도 빠뜨리지 않도록 매 커밋 후 git status로 남은 변경을 확인하세요.
● 고급 Power User 읽기 좋은 커밋 단위와 메시지로 나중의 나와 동료가 흐름을 이해하는 이력 설계
P-1 고급 읽기 좋은 로컬 이력 설계
AI와 한참 작업하다 보니 .env(비밀 키)와 .DS_Store 같은 올리면 안 되는 파일이 추적 대상에 들어왔고, 커밋 메시지도 "수정", "ㅁㄴㅇ"처럼 의미 없는 것이 섞였습니다. 곧 이 저장소를 점검할 예정이라, 불필요한 파일을 제외하고 이력을 읽기 좋게 정돈하는 것이 목표입니다. (모두 내 컴퓨터 안에서, 아직 어디에도 공유하지 않은 상태가 전제입니다.)
단계별 실행
  1. 제외할 파일을 .gitignore에 등록

    저장소 루트에 .gitignore를 만들고 제외할 패턴을 한 줄에 하나씩 적습니다. 이후 이 파일들은 git status에서 보이지 않습니다.

    printf ".env\n.DS_Store\nnode_modules/\n" > .gitignore
    git status                    # 제외된 파일이 더 이상 안 보이는지 확인
  2. .gitignore 자체를 의미 있는 메시지로 커밋

    제외 규칙도 버전 관리에 넣어 둡니다. 첫 줄은 50자 이내로 무엇을·왜 했는지 적습니다.

    git add .gitignore
    git commit -m ".gitignore 추가: 비밀 파일·OS 잡파일 제외"
  3. 이력을 점검하고 다음 커밋부터 한 주제씩

    지금까지의 이력을 훑어 의미 없는 메시지가 있는지 봅니다. 앞으로는 한 커밋에 한 주제만 담아, 이력만 봐도 변경 흐름이 읽히게 만듭니다.

    git log --oneline
.gitignore아직 추적 안 된 파일에만 효과가 있습니다. 그래서 추적되기 전에 미리 등록해 두는 것이 가장 깔끔합니다. 좋은 이력의 핵심은 거창한 명령이 아니라 "한 커밋 = 한 주제 + 또렷한 메시지"라는 단순한 습관입니다.
이미 실수로 커밋해 버린 .env가 있다면 .gitignore에 넣어도 계속 추적됩니다. 이 경우 git rm --cached .env로 추적만 해제한 뒤 다시 커밋해야 합니다. 또한 이미 만든 커밋의 메시지를 고치거나 합치는 일(commit --amend·reset)은 되돌리기 영역이라, 안전 규칙과 함께 별도 매뉴얼에서 다룹니다.

git 2.5x(2.50.1) 기준 | 2026년 6월 16일 작성
← Git 기초 매뉴얼