Git으로 효율적인 버전 관리

2025. 4. 19. 16:31·Git & GitHub
목차
  1. Git 과 DVCS란?
  2. Git 기본 설정
  3. 기본 브랜치명 변경하기
  4. .gitignore와 스테이지 관리
  5. 커밋 남기고 이력 확인하기

프로젝트를 개발하다 보면 코드 변경 이력을 관리하고 여러 사람과 협업하기 위해 버전 관리 시스템이 필수이다. 그중에서도 Git은 분산 버전 관리 시스템(DVCS)의 대표 주자로 서버뿐 아니라 각 클라이언트(로컬)에도 완전한 저장소를 복제해 두기 때문에 안정성과 유연성이 뛰어나다.


 

Git 과 DVCS란?

  • Git
    • 작업을 완료할 때마다 스냅샷(커밋)을 남겨 원하는 시점으로 이동·복원할 수 있는 분산 버전 관리 시스템
  • DVCS
    • 중앙 서버뿐 아니라 각 클라이언트에 이력 전체를 보관하여 서버 장애시 로컬 저장소로 복구 가능
    • 특정 시점으로 돌아가거나 원하는 저장소에서 작업 재개 가능
    • 여러 원격 저장소를 등록해 다양한 협업 플로우 가용사능 (대표 도구: Git, Mercurial, Bazaar, Darcs 등)

Git 기본 설정

설정 범위

범위 적용 범위 설정 파일
시스템(System) 해당 컴퓨터의 모든 사용자·저장소 /etc/gitconfig
전역(Global) 현재 사용자 계정의 모든 저장소 ~/.gitconfig
지역(Local) 현재 저장소(폴더) 한정
<repo>/.git/config

사용자 정보 설정

  • 전역(Global)에 사용자 정보 등록
# 전역에 사용될 이름 설정
git config --global user.name "원하는 이름 또는 Github 닉네임"

# 전역에 사용될 이메일 설정
git config --global user.email "사용하는 이메일 주소 또는 Github 가입에 사용한 이메일"
  • 설정확인
# 전역에 설정된 이름 설정 확인
git config --global user.name

# 전역에 설정된 이메일 설정 확인
git config --global user.email

# 전체 설정 리스트 확인
git config --list
  • 삭제
# 전역에 설정된 이름 삭제
git config --global --unset user.name

# 전역에 설정된 이메일 삭제
git config --global --unset user.email

주의! GitHub에 커밋 기록(잔디)을 남기려면 GitHub 등록 이메일과 일치해야 한다.


지역 (Local) 설정

로컬 설정은 해당 저장소에서만 우선 적용

  • 저장소 초기화 후(local init)
# 로컬 저장소 생성
git init

# 지역에 사용될 이름 설정
git config user.name "원하는 이름 또는 Github 닉네임"

# 지역에 사용될 이메일 설정
git config user.email "사용하는 이메일 주소 또는 Github 가입에 사용한 이메일"
  • 설정확인
# 지역에 설정된 이름 설정 확인
git config user.name

# 지역에 설정된 이메일 설정 확인
git config user.email
  • 삭제
# 지역에 설정된 이름 삭제
git config --unset user.name

# 지역에 설정된 이메일 삭제
git config --unset user.email

기본 브랜치명 변경하기

로컬 저장소가 master일 경우 문제가 발생할 수 있다. 따라서 로컬 저장소를 만들기 전 Git의 기본 브랜치를 master → main으로 변경해 줘야한다.

main으로 변경해서 사용하는 이유는 master를 노예 역사의 잔재로 생각하고 있기 때문에 기본 Branch를 main으로 변경해서 사용하길 권장한다.

# master에서 main으로 기본 브랜치를 변경
git config --global init.defaultBranch main

.gitignore와 스테이지 관리

.gitignore 파일 : 파일을 생성 후 관리를 원하지 않는 파일을 추가하면 git에서 관리하지 않게 된다.

# 모든 .log 파일 무시
*.log

# /로 node_modules 폴더 무시
node_modules/
  • 파일 상태 확인
git status
  • 스테이지(추가)· 언스테이지(제외)
git add <파일명>     # 스테이지 추가
git rm --cached <파일>  # 스테이지에서 제외
git add .            # 모든 변경 파일 스테이지

🔗 자동 생성 .gitignore 템플릿


커밋 남기고 이력 확인하기

# commit을 만드는 명령어 : -m은 뒤에 commit 메시지를 입력할 수 있도록 해주는 옵션
git commit -m "커밋 메시지"

# 변경된 모든사항을 바로 add하고 commit하는 명령어
git commit -am "커밋 메시지"

 

커밋 메시지는 되도록 명확하게 하나의 기능·수정 단위로 작성

 

  • 커밋 이력 확인하기
# 기본 로그
git log

# 자주 쓰는 옵션
git log --oneline            # 한 줄 요약
git log -p                   # 변경 내용(diff) 함께
git log -n <숫자>            # 최근 n개만
git log --stat               # 통계 정보 함께
git log -S"<문구>"           # 특정 단어 변경 커밋 검색
git log --grep="<패턴>"      # 커밋 메시지 검색
git log --all --decorate --oneline --graph  # 그래프 형태

 

저작자표시 비영리 변경금지 (새창열림)

'Git & GitHub' 카테고리의 다른 글

GitHub에 Repository생성  (0) 2025.04.19
Git으로 이전 커밋 복원 & 브랜치 관리하기  (0) 2025.04.19
Git 설치 및 설정  (0) 2025.04.19
  1. Git 과 DVCS란?
  2. Git 기본 설정
  3. 기본 브랜치명 변경하기
  4. .gitignore와 스테이지 관리
  5. 커밋 남기고 이력 확인하기
'Git & GitHub' 카테고리의 다른 글
  • GitHub에 Repository생성
  • Git으로 이전 커밋 복원 & 브랜치 관리하기
  • Git 설치 및 설정
망곰유시
망곰유시
  • 망곰유시
    망곰유시의 기록
    망곰유시
    • 분류 전체보기
      • Python
      • Git & GitHub
      • 컴퓨터 과학
      • 프로젝트
      • 기타
  • 공지사항

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
망곰유시
Git으로 효율적인 버전 관리

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.