Git은 분산형 버전 관리 시스템(VCS)으로, 파일의 변경 이력을 스냅샷 형태로 저장합니다. 매번 전체 파일을 복사하는 대신, 변경된 내용을 효율적으로 기록하며 대부분의 작업이 로컬 환경에서 수행되어 빠른 속도를 보장합니다. Git은 크게 수정된 상태(Modified), 스테이지된 상태(Staged), 커밋된 상태(Committed)라는 세 가지 단계를 거쳐 파일을 관리합니다.
Git 환경 구성
Git 설치 후 사용자 정보를 설정해야 합니다. 전역 설정은 시스템의 모든 프로젝트에 적용되며, 개별 프로젝트 설정은 특정 저장소에만 영향을 미칩니다.
# 사용자 정보 설정
git config --global user.name "사용자 이름"
git config --global user.email "이메일 주소"
# 현재 설정 확인
git config --list
저장소 관리 및 상태 추적
프로젝트 폴더에서 git init을 실행하여 로컬 저장소를 초기화합니다. 작업 중인 파일의 상태를 확인할 때는 git status를 사용하며, 파일 변경 사항을 스테이지 영역으로 옮기려면 git add를 호출합니다.
# 로컬 저장소 초기화
git init
# 변경된 파일 스테이지 영역에 추가
git add .
# 변경 사항 커밋
git commit -m "작업 내용 설명 작성"
변경 사항 복구 및 관리
이미 커밋된 내용을 되돌리거나 작업 중인 내용을 폐기해야 할 때 다음 명령어들을 사용합니다.
git log: 커밋 이력 출력git reflog: 삭제된 커밋을 포함한 모든 이력 출력git reset --hard [커밋ID]: 특정 커밋 시점으로 상태를 완전히 되돌림git checkout -- [파일경로]: 작업 영역의 수정 사항을 마지막 커밋 상태로 복구
원격 저장소 및 브랜치 활용
협업 시 원격 서버(GitHub, GitLab 등)와 동기화가 필수적입니다. remote 명령을 통해 원격 주소를 관리하고, 브랜치를 생성하여 독립적인 작업 환경을 구축합니다.
# 원격 저장소 추가
git remote add origin [저장소 주소]
# 원격 저장소로 변경 사항 전송
git push -u origin main
# 브랜치 생성 및 전환
git checkout -b feature-work
# 특정 브랜치 병합
git merge feature-work
태그 관리
릴리스 버전과 같이 특정 지점을 고정하고 싶을 때 태그 기능을 사용합니다.
# 태그 생성
git tag -a v1.0.0 -m "버전 1.0.0 릴리스"
# 태그 원격 서버로 전송
git push origin v1.0.0