지옥에서 온 Git

reset으로 알아보는 working copy, index, repository

수업소개

이번 수업에서는 git reset 의 옵션(--soft, --mixed, --hard)의 차이점을 알아봅니다. 이 과정에서 working copy, inde, repository의 개념을 정리해봅시다. 

수업

댓글

댓글 본문
  1. 박병진
    2021.02.10 완료
  2. 현수
    감사합니다~
  3. supernet
    오늘 처음 GIT 을 접해서 걱정을 많이 했는데,
    어려운 개념을 쉽게 풀어 설명해 주시니 정확하게 개념을 이해하게 되었습니다.
    정말 감사드립니다.
  4. PassionOfStudy
    ---------------------------------------------------------------
    | working directory, working tree, working copy |
    ---------------------------------------------------------------
    | index, staging area, cache |
    ---------------------------------------------------------------
    | repository, history, tree |
    ---------------------------------------------------------------
  5. 유기농브래드
    svn 만 쓰다가 git 사용에 대한 막연한 두려움이 있었는데요~ 자신감이 붙어가는 강의 입니다. 감사합니다 :)
  6. danielkim
    믿고보는 이고잉...
  7. haMsa
    아. 이런 수업 정말 좋습니다. 감사합니다.
  8. 가람
    정말 감사합니다.

    제가 느낀 로직에 따르면 git reset 이란건 지우는 행위이기 보단 git reset 이후 입력되는 Head 나 commit 의 해쉬값에 저장되어 있는 값을 현재의 working directory, index, repository에 덮어 쒸운다라고 생각되네요.
    이것이 soft, mixed, hard에 따라 적용되는 범위가 다른것일 뿐이고.

    예를 들어 git reset --head 의 경우 head 에 저장되었던 값을 현재의 값에 덮어 쓰는 것이고,
    git rest --commit의 해쉬 이면 commit의 해쉬에 있던 값들을 현재의 값에 덮어 쓰는 행위가 되는 것으로..

    잘 이해한 거겠죠?
  9. 종크
    좋은 강의 감사합니다. 이전에는 git을 쓰면서 원리에 대한 짐작도 하기 힘들었는데, 이고잉님의 강의를 보면서 차츰 이해가 되가네요. .git 디렉토리를 뒤져가며 생각한 바와 비교하는 것이 참 즐겁습니다. ㅎㅎ
  10. egoing
    주소라고 보시면 됩니다~ 마법은 아니니까요. ^^
    대화보기
    • 노마드
      이고잉님 강의 잘보고있습니다. 설명을 논리적으로 잘하셔서 웹애플리케이션부터해서 루비&파이썬,GIT까지 잘따라올수 있었습니다. 늦게나마 다시 원래길로 돌아온것같은 안도감도 생깁니다. 늦게시작한만큼 버전관리 이후부터는
      좀더 속도를 내볼려구요. 이번챕터는 좀 햇갈려서 세번쯤 보면서 생각이 난건데요, 이고잉님 설명해주신 엑셀시트에서, 커밋한 버전별로 히스토리를 DB처럼 누적해서 표시한다음에, 리셋명령을 줬을때 각 옵션별로 취소되는 범위가 어떻게 다른지 보여주시면 좀더 이해가 잘되지 않을까 생각이 듭니다. 저처럼 버전관리가 처음인 사람들은 좀 햇갈릴수 있을듯 하거든요. 그리고 해쉬ID(sha-1)에 대해서 궁금한게 좀있는데요, sha-1이라는 알고리즘으로 160비트 40digit 16진수로 변환한다는거까진 알아냈는데요, 여기에 input으로 들어가는 정보가 어떤것들인지 궁금해서요. 예를들어 어떤커밋에서 변경된코드가 몇백줄이건 이게 모두다 160비트로 직접변환이 되는건지 아니면 그냥 어떤 주소?같은건지 그게 궁금합니다. 위키랑 여기저기 찾아봤는데 역사라던지 용도?,알고리즘정도까지밖에 못알아냈네요.
    • eremuse
      럭키세븐이네요 본 순서가요 ㅎ
      버전관리가 참 중요한 수업이라고 생각을 하는데 생각보다 원리 부분의 인기가 다른 git강의에
      비해서 많이 알려지지 않아서 아쉽네요.
      비전공자일수록 이런 원리에 관련된 배경지식들이 많이 부족한데
      전 오히려 이런 수업들이 더 활성화 되었으면 하네요^^
      이고잉님 정말 감사합니다.
    • egoing
      좋게 평가해주신 이 댓글이 저에게 큰 힘이 됩니다. 너무 로우한 정보를 제공하고 있는 것은 아닐까 걱정도 하고 있거든요. 감사합니다. ^^
      대화보기
      • fallback
        이 강의로 working directory, index, repository의 개념 뿐만 아니라 이전 강의에서 이야기했던 blob, tree, commit, head, index, branch가 각 명령어에 의해 어떻게 변경되고. 그 변경이 working directory, index, repository 중 어떤 것에 영향을 주는지 스스로 생각해볼 수 있는 기반 지식을 제공해주는 강의라 생각합니다. Pro Git만 읽었을 땐, 용어의 혼란과 가장 기본이되는 blob의 실체를 오해하는 바람에, 반토막난 지식밖에 얻지 못했는데, 이 강의가 그 문제를 해결해주었네요. 교육을 받는 사람이 어디에서 혼란이 있을 거라는 것을 알고 쉽게 설명해주는 능력이 탁월하시네요.