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로 돌아갈 수 있을까?