되돌리기
6. 연습 문제
문제 1. 작업 트리만 되돌리기
config.txt 를 수정만 하고(add 안 함) 직전 커밋 상태로 되돌리는 명령을 쓰세요.
git restore config.txt작업 트리만 대상이라 스테이징이나 히스토리는 건드리지 않습니다.
문제 2. 스테이징만 취소하기
config.txt 를 수정하고 add 까지 했습니다. 스테이징만 취소하고 수정 내용은 남기는 명령을 쓰세요.
git restore --staged config.txt작업 트리의 수정은 그대로 남아 다시 add 하거나 버릴 수 있습니다.
문제 3. reset 모드 고르기
직전 커밋 메시지만 잘못됐고 내용은 다시 그대로 커밋하고 싶습니다. --soft·--mixed·--hard 중 무엇을 쓸지, 또는 다른 방법이 있는지 쓰세요.
메시지만 고칠 때는 reset 보다 git commit --amend -m "..." 가 더 간단합니다. reset 을 쓴다면 --soft 로 커밋만 풀고 다시 커밋합니다.
문제 4. 이미 push 한 커밋 취소
동료도 이미 받아간 커밋 하나를 취소해야 합니다. 어떤 명령을 쓸지와 이유를 한 문장으로 쓰세요.
git revert <커밋 해시>reset 은 히스토리를 바꿔 동료와 어긋나지만, revert 는 새 커밋으로 취소해 히스토리를 보존합니다.
문제 5. reset --hard 로 잃은 커밋 복구
git reset --hard HEAD~1 을 실수로 실행해 커밋이 하나 사라졌습니다. 되찾는 순서를 명령으로 쓰세요.
git reflog
git reset --hard HEAD@{1}reflog 에서 사라지기 직전 위치를 찾아 그 지점으로 다시 reset --hard 합니다.