홈 › Git › 03 / 8

되돌리기

섹션 7진행 0 / 8

6. 연습 문제

문제 1. 작업 트리만 되돌리기

config.txt 를 수정만 하고(add 안 함) 직전 커밋 상태로 되돌리는 명령을 쓰세요.

bash
git restore config.txt

작업 트리만 대상이라 스테이징이나 히스토리는 건드리지 않습니다.

문제 2. 스테이징만 취소하기

config.txt 를 수정하고 add 까지 했습니다. 스테이징만 취소하고 수정 내용은 남기는 명령을 쓰세요.

bash
git restore --staged config.txt

작업 트리의 수정은 그대로 남아 다시 add 하거나 버릴 수 있습니다.

문제 3. reset 모드 고르기

직전 커밋 메시지만 잘못됐고 내용은 다시 그대로 커밋하고 싶습니다. --soft·--mixed·--hard 중 무엇을 쓸지, 또는 다른 방법이 있는지 쓰세요.

메시지만 고칠 때는 reset 보다 git commit --amend -m "..." 가 더 간단합니다. reset 을 쓴다면 --soft 로 커밋만 풀고 다시 커밋합니다.

문제 4. 이미 push 한 커밋 취소

동료도 이미 받아간 커밋 하나를 취소해야 합니다. 어떤 명령을 쓸지와 이유를 한 문장으로 쓰세요.

bash
git revert <커밋 해시>

reset 은 히스토리를 바꿔 동료와 어긋나지만, revert 는 새 커밋으로 취소해 히스토리를 보존합니다.

문제 5. reset --hard 로 잃은 커밋 복구

git reset --hard HEAD~1 을 실수로 실행해 커밋이 하나 사라졌습니다. 되찾는 순서를 명령으로 쓰세요.

bash
git reflog
git reset --hard HEAD@{1}

reflog 에서 사라지기 직전 위치를 찾아 그 지점으로 다시 reset --hard 합니다.