git checkout, reset, head

김영웅·2022년 6월 28일
0

head : 저장소를 만들면 헤드가 만들어지고, 기본적으로 master branch를 가르킨다.
- 현재 이 저장소가 어떤 브랜치에 check out 되어있는지는 head를 통해서 알 수 있다.
- 현재 버전을 알고싶으면, head가 가르키는 branch가 가르키는 버전 값을 통해 알 수 있다.

master :

새로운 branch를 만들려고 할 때, 버전이 어디서 시작하는지는 head가 가르키는 branch가 가르키는 버전을 통해서 알 수있다.

checkout 을 통해서 이 저장소의 branch를 바꿀 수 있다.
-> 이 때 head가 가르키는 branch를 바꾼다.

이때 새로운 버전을 만들면 새로운 branch는 새로운 버전을 가지게 되고,
check out이전의 branch와는 다른 버전을 가지게 된다.

결국 checkout은 head의 값(branch)을 바꾼다.
check out 1 이렇게 할경우, branch를 가르키는게 아닌, 1 버전을 직접 가르킨다.
이런 상태를 "detached"라고 한다.

reset은 뭔가를 지우는 느낌 ( <-> checkout은 뭔가를 바꾸는 느낌)

  • checkout은 head를 제어한다.
  • reset은 branch를 제어한다.(head가 branch를 가르키고있다면)

reset master (branch가 google을 가르키고있을때)의 의미:
-> google branch를 master가 가르키고 있는 버전으로 바꾼다!
-> reset 1을 할경우 google branch를 1버전으로 바꾼다.

profile
함께 성장하는 개발자로 성장하겠습니다.

0개의 댓글