it-box

Git 치트시트

자주 사용하는 Git 명령어를 빠르게 찾아볼 수 있습니다.

Git 치트시트 도구 열기

자주 쓰는 git 설정, 커밋 수정, 되돌리기 명령을 한 페이지에 모아 둔 참고 자료입니다.

사용 순서

  1. 필요한 항목을 Configuration, Get started, Commit, 실수 복구, Miscellaneous 중에서 찾습니다.
  2. 명령의 대괄호 부분을 자신의 값으로 바꿉니다. 예를 들어 [name]은 사용자 이름으로 바꿉니다.
  3. 되돌리기 명령을 실행하기 전에 git status로 현재 변경 상태를 확인합니다.

예시

마지막 커밋만 취소하고 변경 내용은 작업 트리에 남기려면 git reset HEAD~1을 실행합니다. 같은 명령에 --hard를 붙이면 변경 내용까지 사라집니다.

한계

명령 목록만 제공하며 실행 결과를 확인하거나 저장소 상태를 검사하지 않습니다. 명령은 일반적인 git 사용을 기준으로 하며, 저장소 설정이나 git 버전에 따라 출력이 다를 수 있습니다. 옵션의 세부 동작은 짧게만 설명합니다.

보안 주의

git reset --hard와 원격 상태로 되돌리는 명령은 커밋되지 않은 변경을 지웁니다. git으로는 커밋되지 않은 변경을 되살릴 수 없으므로, 실행 전에 git status와 git log로 현재 위치를 확인하세요.

배경 지식

git은 변경 내용을 커밋이라는 스냅샷 단위로 기록하고, 각 커밋은 부모 커밋을 가리키는 연결 구조를 이룹니다. HEAD는 지금 작업 중인 위치를 가리키는 포인터이며, HEAD~1은 그 바로 앞 커밋을 뜻합니다. 이 구조를 알면 reset과 amend가 무엇을 바꾸는지 예측할 수 있습니다.

git reset은 현재 브랜치가 가리키는 커밋을 옮기는 명령입니다. --soft, 기본 옵션(mixed), --hard의 차이는 인덱스와 작업 트리를 얼마나 건드리는지에 있습니다. 실수로 커밋을 되돌렸어도 reflog에 이전 HEAD 위치가 남아 있는 경우가 많습니다.

git commit --amend는 마지막 커밋을 새 커밋으로 대체합니다. 이미 원격에 올린 커밋을 바꾸면 다른 사람의 이력과 어긋나므로, 공유 브랜치에서는 되돌리기보다 새 커밋으로 수정하는 편이 안전합니다. 이미 공유한 커밋을 되돌려야 한다면 git revert로 변경을 거꾸로 적용하는 방식이 이력을 보존하므로 더 적절합니다.

자주 묻는 질문

실수로 git reset --hard를 실행했는데 복구할 수 있나요?

커밋된 내용이었다면 git reflog로 이전 HEAD 위치를 찾아 git reset --hard 해시 명령으로 돌아갈 수 있습니다. 커밋되지 않은 변경은 reflog에 남지 않으므로 복구가 어렵습니다.

git commit --amend --no-edit은 무엇을 하나요?

커밋 메시지는 그대로 두고 현재 스테이징된 변경을 마지막 커밋에 합칩니다. 오타 수정이나 빠뜨린 파일 추가에 자주 쓰이며, 이미 push한 커밋이라면 강제 푸시가 필요합니다.

설정한 user.name과 user.email은 어디에 저장되나요?

git config --global로 입력한 값은 홈 디렉터리의 .gitconfig 파일에 저장됩니다. --global을 빼고 저장소 안에서 실행하면 해당 저장소의 .git/config에만 저장됩니다.