GIT4 - Reset & Revert

Reset VS Checkout

수업소개

비슷한듯 다른 기능인 git reset과 git checkout을 비교함으로서 각각의 기능에 대해서 더 잘 이해해보는 시간입니다. 

  • git reset : 브랜치가 가르키는 버전을 바꾼다. 
  • git checkout : HEAD가 가르키는 것(브랜치나 버전)을 바꾼다. 

 


 

강의 1

reset vs checkout 의 이론적인 비교

 

 

 

강의 2

reset vs checkout 의 비교 실습

 

 

 

댓글 숙제

reset과 checkout을 댓글로 설명해보세요. 

댓글

댓글 본문
  1. juney0623
    reset : 이전 소스로 reset 하면 head 와 브랜치가 일치O 로그 출력시 이후 소스는 삭제 된거처럼 보인다.이후 커밋 아이디를 알면 복구할수도 있다.
    checkout :이전 소스로 checkout 하면 head 와 main 브랜치가 일치X 로그출력시 이후 소스를 확인할수 있다.
  2. 김기크
    reset은 Head가 가리키고 있는 브랜치가 가리키는 버전을 바꾸는 것입니다. 삭제처럼 보이는 효과를 냅니다.
    checkout 은 Head가 가리키는 버전이나 브랜치를 직접 바꿉니다.
    둘의 차이는 A-B-C이고 현재 (Head -> master) C라고 할 때,
    git reset B를 하면 git log를 쳤을 때 commit A, B만 나오고 commit C는 삭제된 것처럼 보입니다.
    git checkout B를 하면 git log에선 (Head)B, (master)C로 모두 표시됩니다.
  3. 윤혜원
    A-B-C 일 때
    git reset [B]: 브랜치가 가르키는 버전을 바꾼다.
    git checkout [B/브랜치]: HEAD가 버전이나 브랜치를 가리키도록 바꾼다.
    - HEAD가 브랜치가 아닌 버전을 가리킬 때 : Detached HEAD
    공통점 : 둘 다 working directory가 버전B 기반으로 수정된다
    차이점 : log --all 를 사용하면
    reset에서 C는 아무도 사용하지 않으므로 Delete와 동일한 효과, 하지만 C의 commitID를 알고있다면 복구 가능
    checkout에서는 브랜치가 여전히 C를 가리키므로 log --all 에 표시됨
  4. 서울꺼벙천사
    git reset은 HEAD가 가리키고 있는
    최신 commit을
    원하는 commit으로 지정할 수 있는데
    어떤 branch에 있는
    commit을 지정할 수 있고
    명령을 수행한 뒤
    branch와 연결이 끊어진 것은 삭제됩니다

    git check는 HEAD를 직접적으로 제어하여
    branch를 이동시킬 수 있습니다

    휴~~ 어렵네요 ㅠㅠ
  5. 폭스킴
    첫 commit의 주인공이라니 영광입니다. 다만, 처음이 중요한데 최대한 요점만 적어보려고 하다보니, 너무 부실하고 빈약해서 민망하네요. ^^ 다음 분들이 더 잘해주시겠죠!
    대화보기
    • egoing
      처음으로 도입해본 숙제인데 참여해주셨네요!
      대화보기
      • 폭스킴
        Reset: HEAD가 가리키고 있는 branch의 원하는 commit으로 변경
        Checkout: HEAD를 직접 원하는 branch나 commit으로 변경