Git & Github
[git] git의 불변성과 checkout
츔
2022. 8. 10. 00:11
' git의 불변성 '
ο git 기본 에디터를 vscode로 변경하기
git config --global core.editor "code --wait"
ο commit 문구 변경하기
git commit --amend -m 'v삼'
git commit --amend -m ' v삼' 으로 수정하면 commit id가 바뀌면서 새로운 버전이 생성된다.--amend 실행 시 perent id는 변하지 않는다.
' 깃은 불변하다 '
어떤 커밋도 삭제하지 않고 수정하지 않는다.
깃은 복제본으로 작업한다. 따라서 어떻게 작업해도 복원이 가능하다.
이것을 쉽게 보여주는 증거
commit 문구 변경 코드를 사용하여 'v3'를 'v삼'으로 변경하였다.
이 때, commit id는 새로 생성되지만 parent id는 변하지 않는다.
$git checkout 007e966 (<- v3의 commit id)
-> 지워졌다고 생각했던 'v3'가 다시 나타났고, master는 아직 'v삼'에 존재한다.
HEAD가 v3 → v1으로 옮겨간 것이다.
CHECKOUT은 무조건 HEAD가 움직여야 한다.
(단, git checkout master 로 움직이기)
git checkout 버전이름 를 하면 detached HEAD state (좋은상황 X) 가 발생한다.
ο MASTER를 다시 HEAD로 옮기려면,
더보기
git reset --hard
git checkout master
Q. v3 commit id를 모른다면? v3로 돌아갈 수 있을까?