인프라 · 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 하면 됩니다. 겁낼 필요 없는 일상적인 과정이에요.