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