Step5. 작업 되돌리기
- 스테이지에 올렸던 파일을 내리거나, 커밋을 취소하는 등 각 단계로 돌아갈 수 있다
5-1. 작업 트리에서 수정한 파일 되돌리기 - git check out
- 수정한 파일이 정상적으로 동작하지 않을 때, 가장 최신 버전의 상태로 되돌려야 할 때
수천 줄이 넘는 소스를 쉽게 취소할 수 있다.
경고) checkout으로 되돌린 내용을 다시 복구할 수는 없다.
Changes not staged for commit: 스테이지에 올라가지 않은 상태
책에는 use "git checkout -- <file>..." to discard ...라고 나와 있지만,
내 화면에는 use "git restore <file>..." to discard ...라고 나와 있다.
5-2. 스테이징 되돌리기 - git reset HEAD 파일 이름
책에는 use "git reset HEAD <file>... to unstage" 라고 나와 있지만,
내 화면에는 use "git reset --staged <file>... to unstage" 라고 나와 있다.
5-3. 최신 커밋 되돌리기 - git reset HEAD^
Unstaged changes after reset: 커밋이 취소되고, 스테이지에서도 내려졌다.
HEAD^: 현재 HEAD가 가리키는 브랜치의 최신 커밋(HEAD -> mater)
git restore --옵션을 찾아봤는데.. 아직 내가 모르는 건지 없는 건지 모르겠다
https://git-scm.com/docs/git-restore
[get reset 명령의 옵션]
5-4. 특정 커밋으로 되돌리기 - git reset 커밋 해시
- 'git reset HEAD^'으로 최신 커밋으로 되돌릴 수도 있지만,
- 'git reset 커밋 해시'으로 특정 버전으로 되돌린 다음 그 이후의 버전들 삭제할 수 있다.
입력한 커밋 해시가 리셋되는 것이 아니라, 최근 커밋을 입력한 커밋 해시로 리셋한다.
입력한 커밋 해시 이후의 커밋을 삭제하고, 이 커밋 해시로 이동하겠다는 의미이다.
HEAD is now at ... : 가장 최근 커밋이 입력한 해시 위치로 옮겨졌다.
5-5. 커밋 삭제하지 않고 되돌리기 - git revert
4. 에서는 R2 커밋으로 되돌리기 위해 git reset --hard [R2 커밋 해시]를 했다면,
revert의 경우에는 취소하려고 하는 버전이 와야 하므로
git revert [R5 커밋 해시]로 지정한다.
기존의 R5가 사라지진 않았지만, R5 버전을 지우는 대신
R5에서 변경했던 이력을 취소한 새 커밋을 만든 것이다.
'Git&GitHub > 이론&공부' 카테고리의 다른 글
[7일차] 깃과 브랜치 - 브랜치(Branch)만들기 (0) | 2020.07.25 |
---|---|
[6일차] 깃과 브랜치 - 브랜치(branch)란? (0) | 2020.07.22 |
[4일차] 깃으로 버전 관리 - 2 (0) | 2020.07.18 |
[3일차] 깃으로 버전 관리 - 1 (0) | 2020.07.15 |
[2일차] 간단한 리눅스 명령어 (0) | 2020.07.10 |