프로젝트를 개발하다 보면 코드 변경 이력을 관리하고 여러 사람과 협업하기 위해 버전 관리 시스템이 필수이다. 그중에서도 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 . # 모든 변경 파일 스테이지
커밋 남기고 이력 확인하기
# 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 |