Git 기초

Git은 분산 버전 관리 시스템(Distributed Version Control System)입니다. 소스 코드의 변경 이력을 효율적으로 관리하고, 여러 개발자가 협업하는 데 필수적인 도구입니다.

개요

Git은 리누스 토르발스(Linus Torvalds)가 리눅스 커널 개발을 위해 만들었습니다. 중앙 서버 없이 각 개발자의 컴퓨터에 전체 소스 코드 이력이 저장되는 분산형 방식을 채택하여, 네트워크 연결이 끊어져도 작업이 가능하며, 빠르고 안정적인 것이 특징입니다. GitHub, GitLab, Bitbucket 등과 같은 원격 저장소 서비스와 함께 주로 사용됩니다.

참고

Git과 GitHub는 서로 다른 개념입니다. Git은 버전 관리 시스템 그 자체이며, GitHub는 Git을 사용하는 원격 저장소 서비스입니다.

핵심 개념

Git을 사용하면서 이해해야 할 세 가지 핵심 영역입니다:

개념 설명
Working Directory 현재 작업 중인 로컬 컴퓨터의 파일 시스템 영역입니다.
Staging Area 커밋(Commit)할 파일들을 임시로 저장하는 공간입니다. 변경 사항을 커밋하기 전에 이 공간에 추가합니다.
Repository (Local) 변경 이력이 저장되는 로컬 저장소입니다. 커밋을 통해 Staging Area의 내용이 이 저장소에 영구적으로 기록됩니다.

기본 워크플로우

Git의 기본적인 작업 순서는 다음과 같습니다.

  • 1. git add: 수정된 파일을 Staging Area에 추가합니다.
  • 2. git commit: Staging Area에 있는 파일들의 변경 이력을 로컬 저장소에 기록합니다.
  • 3. git push: 로컬 저장소의 변경 이력을 원격 저장소에 업로드합니다.
  • 4. git pull: 원격 저장소의 변경 이력을 로컬 저장소에 병합합니다.

주요 명령어

Git을 사용하면서 자주 사용되는 명령어들입니다.

CLI
# 새로운 저장소 초기화
git init

# 원격 저장소 복제
git clone <원격 저장소 주소>

# Staging Area에 파일 추가
git add .

# 변경 이력 커밋
git commit -m "커밋 메시지"

# 현재 상태 확인
git status

# 변경 이력 확인
git log

주의사항 및 팁

  • 커밋 메시지는 변경 사항을 명확하게 설명하는 것이 좋습니다.
  • .gitignore 파일을 사용하여 Git이 추적하지 않아야 할 파일(예: 비밀번호, 캐시 파일)을 지정할 수 있습니다.
  • 브랜치(Branch)를 사용하면 독립적인 환경에서 기능을 개발할 수 있어 협업에 용이합니다.
주의

협업 시에는 git pull을 자주 사용하여 원격 저장소의 최신 이력을 받아와 충돌을 최소화해야 합니다. 충돌이 발생하면 수동으로 해결해야 합니다.