Git 기초 & 버전 관리

2026. 6. 22. 21:00·BI&Programming-Tools/Etc

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
'BI&Programming-Tools/Etc' 카테고리의 다른 글
  • VSCode에서 Git & GitHub 사용하기
  • GitHub 사용법 & 잔디 심기
  • [생물정보학] Biopython 기초
  • 생물정보학을 위한 파이썬 라이브러리 개요
데이터로 읽는 생명
데이터로 읽는 생명
is-note 님의 블로그 입니다.
  • 데이터로 읽는 생명
    In Silico Note
    데이터로 읽는 생명
  • 전체
    오늘
    어제
    • 분류 전체보기 (190) N
      • Bio-Knowledge (16)
        • 분자생물학 & 유전학 기초 (0)
        • 전사체학 & 유전자 발현 (0)
        • 구조생물학 & 단백질 (0)
        • 싱글셀 & 다중오믹스 (0)
        • 임상유전학 & 질환 데이터 (0)
      • Programming (4)
        • API (4)
      • BI&Programming-Tools (111)
        • File Formats (14)
        • Linux & Bash Script (38)
        • Python (35)
        • R (11)
        • 통계 (8)
        • Pipeline Manager (0)
        • Etc (5)
      • Bio Data Analysis (28) N
        • 서열분석개론 (6)
        • WGS(Whole Genome Seq) (11)
        • WES(Whole Exome Seq) (2)
        • RNA-Seq (4) N
        • Metagenome (2)
        • Non-human Resequencing (1)
        • 임상유전체 분석 (1)
        • Multi-Omics (1)
      • Bio-Trends & Tech (1)
      • 코딩테스트 연습 (30)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    유전체분석
    파이썬연습
    통계
    fasta
    코딩테스트
    wgs
    bioinformatics
    리눅스기초
    분자생물학
    R
    GATK
    파이썬
    FASTQ
    파일포맷
    ngs
    리눅스
    데이터분석
    R기초
    파이썬기초
    생물정보학
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
데이터로 읽는 생명
Git 기초 & 버전 관리
상단으로

티스토리툴바