DevOps/git, github

Basic Workflow

minseoki 2026. 1. 14. 09:36

작업 공간에서 저장소까지의 여정


Git의 세 가지 영역

Git을 이해하는 핵심은 세 가지 영역을 구분하는 것이다.

영역 설명 비유
Working Directory 실제로 파일을 편집하는 공간 책상 위
Staging Area 커밋할 파일을 준비하는 공간 택배 박스
Repository 변경 이력이 저장되는 공간 창고

저장소 만들기: git init

새 프로젝트에서 Git을 사용하려면 저장소를 초기화해야 한다.

# 프로젝트 폴더 생성 및 이동
mkdir my-project
cd my-project

# Git 저장소 초기화
git init

.git 폴더의 정체

git init을 실행하면 .git이라는 숨김 폴더가 생성된다.

ls -la
# 출력: drwxr-xr-x  .git

상태 확인하기: git status

git status는 현재 저장소의 상태를 알려주는 가장 자주 쓰는 명령어이다.

git status

상태별 출력 예시

1. 깨끗한 상태

On branch main
nothing to commit, working tree clean

2. 새 파일이 있을 때 (Untracked)

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

3. Staging Area에 파일이 있을 때

Changes to be committed:
  (use "git restore --staged <file>..." to unstage)
        new file:   hello.txt

무대 위로 올리기: git add

커밋하고 싶은 파일을 Staging Area에 올립니다.

# 특정 파일 추가
git add hello.txt

# 여러 파일 추가
git add file1.txt file2.txt

# 현재 디렉토리의 모든 변경사항 추가
git add .
옵션 설명
. 현재 디렉토리와 하위의 모든 변경사항을 Staging Area에 추가
-A 또는 --all 저장소 전체의 모든 변경사항(새 파일, 수정, 삭제)을 추가
-p 또는 --patch 변경사항을 하나씩 확인하며 선택적으로 추가

왜 Staging Area가 필요할까?

Staging Area의 장점

  • 관련 있는 변경사항만 골라서 커밋 가능
  • 커밋 전에 무엇이 포함될지 검토 가능
  • 실수로 불필요한 파일 포함 방지

역사로 남기기: git commit

Staging Area의 내용을 저장소에 영구 기록한다.

# 메시지와 함께 커밋
git commit -m "로그인 기능 추가"

# 에디터에서 상세 메시지 작성
git commit

# 에디터 없이 바로 메세지를 쓰려면? -m 옵션
git commit -m 'add: 로그인 기능 추가!'
옵션 설명
-m "메시지" 커밋 메시지를 인라인으로 작성 (에디터 열지 않음)
-a 또는 --all 이미 추적 중인 파일의 변경사항을 자동으로 스테이징 후 커밋
--amend 직전 커밋을 수정 (메시지 변경 또는 파일 추가)

좋은 커밋 메시지 작성법

좋은 예시

✅ feat: 소셜 로그인 기능 추가
✅ fix: 장바구니 수량 음수 입력 방지
✅ docs: API 사용법 문서화

나쁜 예시

❌ 수정함
❌ asdfasdf
❌ 최종
❌ 여러 가지 수정

이력 확인하기: git log

지금까지의 커밋 기록을 확인한다.

# 전체 로그
git log

# 한 줄씩 간단히
git log --oneline

# 그래프로 보기
git log --oneline --graph
옵션 설명
--oneline 각 커밋을 한 줄로 간결하게 표시 (짧은 해시 + 메시지)
--graph 브랜치와 머지 히스토리를 ASCII 그래프로 시각화
-n 또는 -숫자 최근 n개의 커밋만 표시 (예: git log -3)

로그 출력 예시

commit 7a8b9c0 (HEAD -> main)
Author: 홍길동 <[gildong@example.com](mailto:gildong@example.com)>
Date:   Mon Dec 22 10:30:00 2025 +0900

    feat: 로그인 기능 추가

핵심 정리

flowchart TB
    subgraph 명령어
        INIT[git init] --> STATUS[git status]
        STATUS --> ADD[git add]
        ADD --> COMMIT[git commit]
        COMMIT --> LOG[git log]
    end

    subgraph 영역
        WD[Working Directory]
        SA[Staging Area]
        REPO[Repository]
    end

    ADD -.->|파일 이동| SA
    COMMIT -.->|기록 저장| REPO

'DevOps > git, github' 카테고리의 다른 글

git 공부  (0) 2026.01.14