Git 치트시트
검색하고 인쇄할 수 있는 Git 참조 자료——설정, 브랜치, 병합, 리베이스, 원격 저장소, 스태시, 태그, 변경 취소. 무료.
설정 및 구성
10git config --global user.name "Jane Doe"
커밋에 표시될 이름 설정
git config --global user.email "jane@example.com"
커밋에 표시될 이메일 설정
git config --global init.defaultBranch main
새 저장소를 "main" 브랜치로 시작
git config --global core.editor "code --wait"
VS Code를 기본 Git 편집기로 사용
git config --global pull.rebase true
pull 시 merge 대신 rebase
git config --global alias.co checkout
단축 별칭 생성 (git co)
git config --global --list
모든 전역 구성 값 나열
git config user.email
현재 저장소의 이메일 출력
git config --global color.ui auto
컬러 명령줄 출력 활성화
git help <command>
명령어 매뉴얼 페이지 열기
저장소 생성 및 클론
9git init
현재 폴더에 새 저장소 초기화
git init my-project
새 디렉터리에 새 저장소 생성
git clone https://example.com/repo.git
HTTPS로 원격 저장소 클론
git clone git@example.com:user/repo.git
SSH로 원격 저장소 클론
git clone <url> my-dir
지정한 디렉터리 이름으로 클론
git clone --depth 1 <url>
최신 커밋만 포함한 얕은 클론
git clone --branch dev <url>
특정 브랜치를 클론 및 체크아웃
git clone --recurse-submodules <url>
클론 및 모든 서브모듈 초기화
git remote add origin <url>
기존 로컬 저장소에 원격 연결
스테이징 및 커밋
11git add file.txt
다음 커밋용으로 파일 하나 스테이징
git add .
현재 디렉터리의 모든 변경 스테이징
git add -A
삭제 포함 모든 변경 스테이징
git add -p
선택한 청크를 대화식으로 스테이징
git commit -m "Add login form"
메시지와 함께 스테이징된 변경 커밋
git commit -am "Fix typo"
추적 파일 스테이징 및 커밋 한 번에
git commit --amend
최근 커밋 수정
git commit --amend --no-edit
스테이징된 변경을 마지막 커밋에 추가
git rm file.txt
파일 제거 및 삭제 스테이징
git mv old.txt new.txt
파일 이름 변경/이동 및 스테이징
git reset file.txt
변경은 유지한 채 파일 언스테이징
브랜치
10git branch
모든 로컬 브랜치 나열
git branch -a
로컬 및 원격 추적 브랜치 나열
git switch -c feature/login
새 브랜치 생성 후 전환
git switch main
기존 브랜치로 전환
git checkout -b hotfix
브랜치 생성 및 전환의 전통적 방법
git branch -m old-name new-name
브랜치 이름 변경
git branch -d feature/login
병합된 로컬 브랜치 삭제
git branch -D feature/login
병합 안 된 로컬 브랜치 강제 삭제
git push origin --delete feature/login
원격 브랜치 삭제
git switch -
이전 브랜치로 복귀
병합 및 리베이스
10git merge feature/login
현재 브랜치에 브랜치 병합
git merge --no-ff feature/login
항상 병합 커밋을 생성하며 병합
git merge --squash feature/login
브랜치를 하나의 스테이징 변경으로 병합
git merge --abort
충돌 발생한 병합 취소
git rebase main
현재 브랜치 커밋을 main에 재적용
git rebase -i HEAD~3
최근 커밋 3개를 대화식으로 수정
git rebase --continue
충돌 해결 후 리베이스 재개
git rebase --abort
진행 중인 리베이스 취소
git cherry-pick <hash>
단일 커밋을 현재 브랜치에 적용
git mergetool
병합 충돌 해결 도구 실행
원격 및 동기화
11git remote -v
구성된 원격과 URL 나열
git remote add upstream <url>
upstream 이름의 두 번째 원격 추가
git remote set-url origin <url>
기존 원격의 URL 변경
git fetch
병합 없이 원격 변경 다운로드
git fetch --all --prune
모든 원격 fetch 및 오래된 브랜치 제거
git pull
원격 변경 fetch 및 통합
git pull --rebase
pull 후 로컬 커밋을 위에 리베이스
git push
로컬 커밋을 원격에 업로드
git push -u origin main
push 및 upstream 추적 브랜치 설정
git push --force-with-lease
타인 작업 손상 없이 안전한 강제 푸시
git push origin --tags
모든 로컬 태그를 원격에 푸시
검사 및 비교
10git status
스테이징/언스테이징/미추적 파일 표시
git status -s
간결한 짧은 형식으로 상태 표시
git diff
인덱스 대비 언스테이징 변경 표시
git diff --staged
다음 커밋용 스테이징 변경 표시
git diff main..feature
두 브랜치 비교
git diff HEAD~1 HEAD
마지막 커밋과 부모 커밋 비교
git show <hash>
커밋 하나의 상세 및 diff 표시
git show HEAD:file.txt
특정 커밋 당시의 파일 표시
git log --stat
변경 파일 요약과 함께 커밋 표시
git shortlog -sn
작성자별 커밋 수 집계
변경 되돌리기
10git restore file.txt
파일의 언스테이징 변경 폐기
git restore --staged file.txt
변경은 유지한 채 파일 언스테이징
git restore --source=HEAD~1 file.txt
이전 커밋에서 파일 복원
git checkout -- file.txt
로컬 변경 폐기의 전통적 방법
git reset --soft HEAD~1
마지막 커밋 취소, 변경 스테이징 유지
git reset --mixed HEAD~1
마지막 커밋 취소, 변경 언스테이징 유지
git reset --hard HEAD~1
마지막 커밋 취소 및 변경 폐기
git revert <hash>
특정 커밋을 되돌리는 새 커밋 생성
git clean -fd
미추적 파일 및 디렉터리 삭제
git clean -nd
clean이 제거할 대상 미리보기
스태시
10git stash
미커밋 변경 저장 및 트리 정리
git stash push -m "wip"
설명 메시지와 함께 변경 스태시
git stash -u
미추적 파일 포함 스태시
git stash list
모든 스태시 변경 세트 나열
git stash show -p
최신 스태시의 diff 표시
git stash apply
최신 스태시 재적용 및 유지
git stash pop
최신 스태시 재적용 및 제거
git stash apply stash@{2}
인덱스로 특정 스태시 재적용
git stash drop stash@{0}
스태시 항목 하나 삭제
git stash clear
모든 스태시 항목 삭제
태그
9git tag
모든 태그 나열
git tag v1.0.0
HEAD에 경량 태그 생성
git tag -a v1.0.0 -m "Release 1.0.0"
메시지가 있는 주석 태그 생성
git tag -a v1.0.0 <hash>
특정 과거 커밋에 태그 지정
git show v1.0.0
태그 상세 표시
git push origin v1.0.0
단일 태그를 원격에 푸시
git push origin --tags
모든 로컬 태그를 원격에 푸시
git tag -d v1.0.0
로컬에서 태그 삭제
git push origin --delete v1.0.0
원격에서 태그 삭제
로그 및 이력
12git log
전체 커밋 이력 표시
git log --oneline
커밋당 한 줄의 간결한 로그 표시
git log --oneline --graph --all
브랜치를 ASCII 그래프로 시각화
git log -p
diff와 함께 커밋 이력 표시
git log --author="Jane"
작성자별 이력 필터
git log --since="2 weeks ago"
날짜 범위별 이력 필터
git log --pretty=format:"%h %an %s"
로그 출력 형식 사용자 지정
git blame file.txt
각 줄의 마지막 변경자 표시
git reflog
HEAD 이동 이력 표시
git bisect start
불량 커밋 이진 탐색 시작
git bisect good <hash>
bisect 중 커밋을 정상으로 표시
git bisect bad
현재 커밋을 불량으로 표시
“:q”와 일치하는 항목이 없습니다.
도움이 필요하신가요?
이 도구에서 문제를 발견하셨나요? 저희 팀에 알려주세요.