Git 핵심 용어와 필수 명령어
Git 핵심 용어와 필수 명령어
Git 핵심 용어와 필수 명령어 정리
Git을 효과적으로 사용하기 위해서는 몇 가지 핵심 용어와 기본 명령어를 반드시 이해해야 합니다. 이 가이드는 Git의 기본 개념부터 협업에 필요한 고급 명령어까지 체계적으로 설명합니다.
Git의 핵심 개념
- Working Tree (Working Directory)
- 소스 코드를 실제로 작성하고 편집하는 사용자의 로컬 작업 공간입니다.
- Staging Area (Index)
- 커밋할 변경 사항들을 임시로 저장하는 공간입니다.
git add
명령을 통해 파일들을 이곳으로 옮깁니다.
- 커밋할 변경 사항들을 임시로 저장하는 공간입니다.
- Local Repository (.git directory)
- Staging Area의 파일들을
git commit
하여 버전으로 기록하는 개인 저장소입니다. 모든 변경 이력이 이곳에 저장됩니다.
- Staging Area의 파일들을
- 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.