728x90
git init
# C0
echo "안녕" >> 1.txt
git add .;git commit -m "작업0"
git log --all --graph --decorate --oneline
# C1
echo "하세요." >> 1.txt
git add .;git commit -m "작업1"
git log --all --graph --decorate --oneline
# C2
echo "반가워요!" >> 1.txt
git add .;git commit -m "작업2"
git log --all --graph --decorate --oneline
# 최신커밋에서 뭔가를 하려다가, git add 하기 전에, 잠시 과거로 돌아감
echo "♥♥" >> 1.txt
git checkout C1 # 실패, 기존 작업을 저장하지 않았음
git checkout -f . # 마지막 커밋 이후로 작업한 내용중에서, git add 되지 않은 것들을 취소
git checkout C1 # 성공
# 과거에서 작업
echo "ㅋㅋ" >> 1.txt
# 현재로 돌아옴
git checkout master # 실패, 작업한게 있기 때문에
git checkout -f . # 작업한 것을 제거
git checkout master # 성공
git checkout -f : 마지막 커밋 이후 작업 내용 취소
과거로 돌아갈 일은 거의 없다. 궁금하면 github에서 커밋내용(과거), 로그를 확인할 수 있고 그 당시 코드를 받을 수 있다.
하지만 공부할 때 같은 경우 자료를 git으로 관리하고 제공한다면 git checkout -f . 로 초기화하고 (시간 여행 준비) git checkout <시간여행할 커밋>으로 돌아가서 작업을 진행하면 손쉽게 실습환경을 구축하고 활용할 수 있을 것 같다.
'IT' 카테고리의 다른 글
git reset과 amend 실습 (0) | 2022.09.13 |
---|---|
Git cherry-pick 실습 (0) | 2022.09.13 |
Git rebase 실습 (0) | 2022.09.13 |
Git merge 실습 (0) | 2022.09.13 |
스프링 IoC 컨테이너 (Inversion Of Control) (0) | 2022.09.05 |