Git이란?
로컬에서 파일의 변경 이력을 추적하고 관리하는 버전 관리 시스템입니다.
코드가 언제, 어떻게 바뀌었는지 기록하고, 이전 상태로 되돌릴 수 있습니다.
핵심 개념
세 가지 영역
| 영역 | 설명 |
| Working Directory | 실제 파일이 있는 작업 공간입니다. |
| Staging Area (Index) | 커밋 전 변경 사항을 모아두는 임시 공간입니다. |
| Repository (.git) | 커밋된 이력이 저장되는 공간입니다. |
파일의 흐름은 Working Directory → Staging Area → Repository 순서입니다.

파일 상태
- Untracked : Git이 아직 추적하지 않는 새 파일입니다.
- Tracked (Unmodified) : 커밋 이후 변경 없는 파일입니다.
- Modified : 추적 중인 파일이 수정된 상태입니다.
- Staged : git add로 Staging Area에 올라간 상태입니다.
초기 설정
처음 한 번만 해두면 됩니다.
git config --global user.name "이름"
git config --global user.email "이메일@example.com"
# 설정 확인
git config --list
자주 쓰는 명령어
저장소 초기화 & 클론
# 새 저장소 만들기
git init
# 원격 저장소 복제하기
git clone https://github.com/username/repo.git
변경 사항 추가 & 커밋
# 특정 파일 스테이징
git add 파일명
# 전체 파일 스테이징
git add .
# 현재 상태 확인
git status
# 커밋
git commit -m "커밋 메시지"
# add + commit 한번에 (Tracked 파일만 가능)
git commit -am "커밋 메시지"
이력 확인
# 커밋 이력 보기
git log
# 한 줄로 간략히 보기
git log --oneline
# 그래프 형태로 보기
git log --oneline --graph --all
변경 내용 확인
# Working Directory 변경 내용 확인
git diff
# Staged 변경 내용 확인
git diff --staged
브랜치
기본 사용
# 브랜치 목록 확인
git branch
# 브랜치 생성
git branch 브랜치명
# 브랜치 이동
git checkout 브랜치명
# 생성 + 이동 한번에
git checkout -b 브랜치명
# 브랜치 삭제
git branch -d 브랜치명
병합
# 현재 브랜치에 다른 브랜치 합치기
git merge 브랜치명
충돌(conflict)이 발생하면 해당 파일에 <<<<<<, =======, >>>>>>> 표시가 나타납니다. 직접 수정 후 git add → git commit을 하면 됩니다.
되돌리기
스테이징 취소
# Staged 상태를 Working Directory로 되돌리기
git restore --staged 파일명
파일 수정 취소
# 마지막 커밋 상태로 파일 복구 (변경 내용 사라짐, 주의)
git restore 파일명
커밋 되돌리기
# 커밋을 되돌리는 새 커밋 생성 (이력 유지, 권장)
git revert 커밋해시
# 커밋 자체를 없애기 (이력 삭제, 주의)
git reset --hard 커밋해시
원격 저장소에 이미 push한 커밋은 reset --hard보다 revert를 사용하는 게 안전합니다.
.gitignore
추적하지 않을 파일/폴더를 지정합니다.
프로젝트 루트에 .gitignore 파일을 만들어 작성합니다.
# Python 캐시 파일
__pycache__/
*.pyc
# Jupyter Notebook 체크포인트
.ipynb_checkpoints/
# 환경변수 파일
.env
# 가상환경 폴더
venv/
.conda/
# macOS 메타파일
.DS_Store
생물정보학 작업 시 대용량 데이터 파일(.fastq, .bam, .vcf 등)도 .gitignore에 추가하는 게 좋습니다.
커밋 메시지 작성 팁
일관성 있게 작성하면 나중에 이력 파악이 쉽습니다.
feat: 새로운 기능 추가
fix: 버그 수정
docs: 문서 수정
style: 코드 포맷 변경 (기능 변경 없음)
refactor: 코드 리팩토링
chore: 기타 작업 (패키지 업데이트 등)
'BI&Programming-Tools > Etc' 카테고리의 다른 글
| VSCode에서 Git & GitHub 사용하기 (0) | 2026.06.23 |
|---|---|
| GitHub 사용법 & 잔디 심기 (0) | 2026.06.22 |
| [생물정보학] Biopython 기초 (0) | 2026.06.20 |
| 생물정보학을 위한 파이썬 라이브러리 개요 (0) | 2026.06.19 |
