인프라 · Git

Git

코드를 고치다 보면 "언제, 무엇을, 왜 바꿨는지"가 쌓입니다. Git은 그 변경 이력을 기록하고, 여러 사람이 같은 코드를 동시에 작업한 뒤 안전하게 합치도록 도와주는 분산 버전관리 시스템입니다.

한 줄로

Git? 은 코드의 스냅샷(커밋)을 차곡차곡 저장합니다. 각자 브랜치로 갈라져 작업하고, 끝나면 다시 합치며(merge), GitHub 같은 원격 저장소로 팀과 공유합니다. 내 PC와 원격 모두에 전체 이력이 있어 "분산"이라 부릅니다.

Git은 "게임의 세이브 포인트". 언제든 이전 지점으로 돌아갈 수 있고, 다른 사람과 각자 저장한 진행을 나중에 하나로 합칠 수 있습니다.
왜 / 어디에 쓰나
  • 이력 추적 — 누가 언제 무엇을 왜 바꿨는지 기록, 문제 생기면 되돌리기
  • 협업 — 여러 명이 각자 브랜치에서 작업하고 충돌 없이 합치기
  • 실험 — 새 기능을 브랜치에서 안전하게 시도, 실패하면 버리기
  • 배포 기준 — 특정 커밋·태그를 빌드·배포의 기준점으로 사용

핵심 개념

개념설명
commit(커밋)변경 내용을 메시지와 함께 저장한 한 스냅샷. 이력의 기본 단위.
branch(브랜치)본 줄기에서 갈라져 나온 독립 작업 줄기. 보통 기능별로 만듦.
merge(병합)다른 브랜치의 변경을 현재 브랜치로 합치는 것.
remote(원격)GitHub 등 공유 저장소. push로 올리고 pull로 받음.

핵심 명령

# 원격 저장소 복제
git clone https://github.com/org/repo.git

# 변경 기록하기
git status              # 현재 변경 상태 확인
git add .               # 변경 파일을 스테이징(기록 대상에 올림)
git commit -m "사용자 목록 화면 추가"   # 스냅샷으로 저장

# 원격과 주고받기
git pull                # 원격의 최신 변경 받아오기
git push                # 내 커밋을 원격에 올리기

# 브랜치
git branch feature/users        # 새 브랜치 만들기
git switch feature/users        # 그 브랜치로 이동
git merge feature/users         # 현재 브랜치에 합치기

git log --oneline               # 커밋 이력 한 줄로 보기

협업 흐름 (간단히)

팀에서는 보통 이런 순서로 일합니다.

1. git pull                       # 최신 코드 받기
2. git switch -c feature/login    # 기능 브랜치 만들고 이동
3. (코드 작업) → git add . → git commit -m "..."
4. git push -u origin feature/login   # 원격에 브랜치 올리기
5. GitHub에서 Pull Request 생성 → 리뷰 → main에 merge
충돌(conflict)은 자연스러운 일

같은 줄을 두 사람이 다르게 고치면 merge 충돌이 납니다. Git이 충돌 부분을 표시해 주면, 어느 쪽을 살릴지 직접 정한 뒤 다시 commit 하면 됩니다. 겁낼 필요 없는 일상적인 과정이에요.

다음 단계

  • Git 명령이 도는 터미널 기본기 → Linux
  • 합친 코드를 이미지로 포장·배포 → Docker