Post

Git 핵심 용어와 필수 명령어

Git 핵심 용어와 필수 명령어

Git 핵심 용어와 필수 명령어 정리

Git을 효과적으로 사용하기 위해서는 몇 가지 핵심 용어와 기본 명령어를 반드시 이해해야 합니다. 이 가이드는 Git의 기본 개념부터 협업에 필요한 고급 명령어까지 체계적으로 설명합니다.

Git의 핵심 개념

  • Working Tree (Working Directory)
    • 소스 코드를 실제로 작성하고 편집하는 사용자의 로컬 작업 공간입니다.
  • Staging Area (Index)
    • 커밋할 변경 사항들을 임시로 저장하는 공간입니다. git add 명령을 통해 파일들을 이곳으로 옮깁니다.
  • Local Repository (.git directory)
    • Staging Area의 파일들을 git commit하여 버전으로 기록하는 개인 저장소입니다. 모든 변경 이력이 이곳에 저장됩니다.
  • Commit
    • Staging Area에 준비된 변경 사항들을 Local Repository에 “저장”하는 행위입니다. 각 커밋은 고유한 해시(Hash)값으로 식별됩니다.
  • Head
    • 현재 작업 중인 브랜치의 가장 최신 커밋을 가리키는 포인터입니다.
  • Branch
    • 독립적인 작업 흐름을 만들기 위한 나뭇가지와 같은 개념입니다. 기능 개발, 버그 수정 등을 위해 사용됩니다.
  • Merge
    • 서로 다른 브랜치의 변경 사항을 하나의 브랜치로 합치는 작업입니다. 이 과정에서 코드 충돌(Conflict)이 발생할 수 있습니다.

주요 Git 명령어

1. 초기 설정 및 정보 확인

  • git --version: Git 설치 여부 및 버전 확인
  • git --help: Git 명령어 도움말 조회
  • git config --global user.name "이름": 사용자 이름 전역 설정
  • git config --global user.email "이메일": 사용자 이메일 전역 설정
  • git config --global credential.helper store: 자격 증명 저장 (매번 로그인 방지)

2. 로컬 저장소 관리

  • git init: 현재 디렉토리를 Git 로컬 저장소로 초기화
  • git add <파일> 또는 git add .: 변경된 파일을 Staging Area에 추가 (.은 모든 변경 사항)
  • git status: 로컬 저장소의 현재 상태 확인 (--short 옵션으로 간결하게 보기)
  • git commit -m "커밋 메시지": Staging Area의 변경 사항을 커밋
  • git log: 커밋 이력 조회 (--oneline, --graph 등 다양한 옵션 활용)
  • git diff: 파일의 변경된 내용 비교

3. 원격 저장소 및 협업

  • git remote add <이름> <주소>: 원격 저장소 연결 (보통 이름은 origin 사용)
  • git push <원격저장소> <브랜치>: 로컬 커밋을 원격 저장소로 업로드
  • git clone <주소>: 원격 저장소를 로컬 컴퓨터로 복제
  • git pull <원격저장소> <브랜치>: 원격 저장소의 최신 변경 사항을 가져와 병합

4. 버전 되돌리기 및 히스토리 관리

  • git reset <커밋>: 특정 커밋 시점으로 이력을 되돌림 (이후 커밋 삭제)
    • --soft: 커밋만 되돌리고, 변경 내용은 Staging Area에 유지
    • --mixed (기본값): 커밋과 Staging Area를 되돌리고, 변경 내용은 Working Tree에 유지
    • --hard: 모든 변경 사항을 완전히 삭제. 매우 주의해서 사용해야 함.
  • git revert <커밋>: 특정 커밋의 변경 사항을 취소하는 새로운 커밋을 생성. 협업 환경에서 안전하게 이력을 되돌릴 때 권장됩니다.
  • git restore <파일>: Working Tree의 파일을 가장 최근 커밋 상태로 복원 (수정 취소)
  • git restore --staged <파일>: Staging Area의 파일을 스테이징 해제 (add 취소)
  • git commit --amend: 가장 최근 커밋 메시지를 수정하거나 파일을 추가
  • git rebase <기준브랜치>: 현재 브랜치의 커밋들을 기준 브랜치 위로 재배치하여 히스토리를 깔끔하게 정리

5. 브랜치 및 릴리즈 관리

  • git branch <이름>: 새로운 브랜치 생성
  • git checkout <브랜치> 또는 git switch <브랜치>: 다른 브랜치로 전환
  • git cherry-pick <커밋해시>: 다른 브랜치의 특정 커밋 하나만 현재 브랜치로 가져오기
  • git tag -a <태그명> -m "메시지": 특정 커밋에 버전 태그 생성 (릴리즈 관리)
  • git push <원격저장소> <태그명>: 생성한 태그를 원격 저장소로 푸시

이 명령어들을 통해 개발자들은 코드를 체계적으로 관리하고, 다른 팀원들과 효율적으로 협업하며 안정적인 소프트웨어를 개발할 수 있습니다.

This post is licensed under CC BY 4.0 by the author.