Git 치트 시트

버전 관리를 위한 필수 Git 명령어 – 브랜치, 커밋, 병합 및 협업.

설정 및 구성

Git을 구성하고 사용자 정보를 설정합니다

# 이름과 이메일 설정
git config --global user.name "당신의 이름"
git config --global user.email "your.email@example.com"

# 설정 확인
git config --list

# 기본 브랜치 이름 설정
git config --global init.defaultBranch main
초기 설정
# 기본 편집기 설정
git config --global core.editor "code --wait"

# 색상 출력 활성화
git config --global color.ui auto

# 자격 증명 도우미 설정 (Windows)
git config --global credential.helper wincred
추가 구성

리포지토리 생성

Git 리포지토리를 초기화하거나 복제합니다

# 새 리포지토리 초기화
git init

# 특정 브랜치 이름으로 초기화
git init -b main

# 기존 리포지토리 복제
git clone https://github.com/user/repo.git

# 특정 디렉터리로 복제
git clone https://github.com/user/repo.git my-folder
리포지토리 초기화

기본 워크플로

일상적인 Git 사용을 위한 일반 명령

# 리포지토리 상태 확인
git status

# 파일을 스테이징 영역에 추가
git add file.txt
git add .                 # 모든 파일 추가
git add *.js              # 모든 JavaScript 파일 추가

# 변경 커밋
git commit -m "Commit message"
git commit -am "Message"  # 추적된 파일 추가 및 커밋

# 커밋 히스토리 보기
git log
git log --oneline         # 간결한 보기
git log --graph           # 브랜치 그래프 표시
일일 명령

브랜치 및 병합

브랜치를 생성하고 관리합니다

# 브랜치 목록
git branch                # 로컬 브랜치
git branch -a             # 모든 브랜치 (로컬 + 원격)

# 새 브랜치 생성
git branch feature-branch

# 브랜치 전환
git checkout feature-branch
git switch feature-branch  # 최신 대안

# 새 브랜치 생성 및 전환
git checkout -b feature-branch
git switch -c feature-branch
브랜치 관리
# 현재 브랜치에 브랜치 병합
git merge feature-branch

# 브랜치 삭제
git branch -d feature-branch    # 안전하게 삭제
git branch -D feature-branch    # 강제 삭제

# 브랜치 이름 변경
git branch -m old-name new-name
병합 및 정리

원격 리포지토리

원격 리포지토리를 다룹니다

# 원격 리포지토리 목록
git remote -v

# 원격 리포지토리 추가
git remote add origin https://github.com/user/repo.git

# 원격에서 변경 가져오기
git fetch origin

# 원격에서 변경 풀
git pull origin main

# 원격에 변경 푸시
git push origin main
git push -u origin main   # 업스트림 설정 및 푸시
원격 작업
# 원격 삭제
git remote remove origin

# 원격 이름 변경
git remote rename old-name new-name

# 원격 URL 변경
git remote set-url origin https://github.com/user/new-repo.git
원격 관리

변경 취소

변경을 되돌리거나 리셋합니다

# 작업 디렉터리의 변경 사항 버리기
git restore file.txt
git checkout -- file.txt  # 이전 방식

# 파일 스테이징 해제
git restore --staged file.txt
git reset HEAD file.txt   # 이전 방식

# 마지막 커밋 수정
git commit --amend -m "New message"

# 커밋 되돌리기 (새 커밋 생성)
git revert <commit-hash>
취소 작업
# 이전 커밋으로 리셋 (주의!)
git reset --soft HEAD~1   # 변경 사항을 스테이징 상태 유지
git reset --mixed HEAD~1  # 변경 사항을 스테이징되지 않은 상태 유지
git reset --hard HEAD~1   # 모든 변경 사항 버리기

# 특정 커밋으로 리셋
git reset --hard <commit-hash>
리셋 작업

스태시

변경 사항을 일시적으로 저장합니다

# 현재 변경 사항 스태시
git stash
git stash save "Work in progress"

# 스태시 목록
git stash list

# 스태시 적용
git stash apply           # 스태시 유지
git stash pop             # 적용 후 스태시 삭제

# 특정 스태시 적용
git stash apply stash@{0}

# 스태시 삭제
git stash drop stash@{0}
git stash clear           # 모든 스태시 삭제
스태시 관리

변경 보기

차이점과 히스토리를 검사합니다

# 스테이징되지 않은 변경 사항 표시
git diff

# 스테이징된 변경 사항 표시
git diff --staged
git diff --cached

# 커밋 간 변경 사항 표시
git diff commit1 commit2

# 특정 파일의 변경 사항 표시
git diff file.txt
차이 명령
# 커밋 상세 보기
git show <commit-hash>

# 특정 커밋의 파일 보기
git show <commit-hash>:file.txt

# 파일에서 누가 무엇을 변경했는지 보기
git blame file.txt
검사 명령

태깅

버전 태그를 생성하고 관리합니다

# 태그 목록
git tag

# 경량 태그 생성
git tag v1.0.0

# 주석이 있는 태그 생성
git tag -a v1.0.0 -m "Version 1.0.0"

# 특정 커밋에 태그
git tag -a v1.0.0 <commit-hash> -m "Message"

# 원격에 태그 푸시
git push origin v1.0.0
git push origin --tags    # 모든 태그 푸시

# 태그 삭제
git tag -d v1.0.0
git push origin --delete v1.0.0
태그 작업

유용한 명령

추가적인 유용한 Git 명령

# 추적되지 않은 파일 정리
git clean -n              # 실제 실행 없이 확인
git clean -f              # 파일 삭제
git clean -fd             # 파일 및 디렉터리 삭제

# 리포지토리 검색
git grep "search term"

# 파일 변경자를 표시
git log --follow file.txt

# 별칭 생성
git config --global alias.st status
git config --global alias.co checkout
유용한 유틸리티
# 파일 변경 무시
git update-index --assume-unchanged file.txt

# 파일 변경 다시 추적
git update-index --no-assume-unchanged file.txt

# 추적된 파일 표시
git ls-files
파일 추적
Git 치트 시트