인프런 커뮤니티 질문&답변
git의 원리?
작성
·
188
0
안녕하세요! 강의 잘보고있습니다.
GIT의 원리?는 변경점의 집합인가요?
예를 들어 커밋마다 파일이 추가된다고 했을때
1 commit - [A]
2 commit - [A][B]
3 commit - [A][B][C]
4 commit - [A][B][C][D]
5 commit - [A][B][C][D][E]
이렇게 저장되는게 아닌
1 commit - [A]
2 commit - [B]
3 commit - [C]
4 commit - [D]
5 commit - [E]
이렇게 저장되고 pull을 한다던가 했을때 추가/삭제가 계산되거나 계산된 전체 파일을 받아올 수 있는건가요?
용사 신무기 예시에서도 신무기의 초반 커밋을 지운다면
이후의 커밋에 같이 저장된게 아니기 때문에 신무기에 오류가 날수 있는 걸까요?
퀴즈
`git reset --hard` 명령이 워킹 디렉토리, 스테이징 영역, 저장소에 미치는 영향은 무엇일까요?
저장소만 지정된 커밋으로 되돌립니다.
워킹 디렉토리, 스테이징 영역, 저장소 모두 지정된 커밋 상태로 초기화합니다.
스테이징 영역과 저장소만 되돌리고 워킹 디렉토리 변경사항은 유지합니다.
워킹 디렉토리와 스테이징 영역만 되돌리고 저장소는 그대로 둡니다.
답변 1
1
강민철
지식공유자
안녕하세요 :)
네 맞습니다, git은 '변경 사항'을 기억합니다.
질문자님 말씀대로 만일 아래와 같이 커밋이 추가된다면,
첫 번째 커밋 - A 추가
두 번째 커밋 - B 추가
세 번째 커밋 - C 추가
각각의 커밋에는 '이전 커밋에 비해 무엇이 추가되었는지'만이 표현됩니다.
(전체 파일을 다 저장하지는 않습니다. 이는 용량을 지나치게 많이 잡아먹을테니까요)
pull을 했을 때나
'가장 마지막 변경 사항'을 기준으로 pull을 하게 되고
추가/삭제가 이루어질 때에도 '가장 마지막 변경 사항'을 기준으로 추가/삭제가 이루어지는 겁니다.
git은 변경 사항만을 저장한다! 라고 생각하시면 될 것 같습니다 :)
"용사 신무기 예시에서도 신무기의 초반 커밋을 지운다면 이후의 커밋에 같이 저장된게 아니기 때문에 신무기에 오류가 날수 있는 걸까요?"
라는 질문에 대해서는 그렇습니다.
이전의 커밋으로 되돌아간다면,
가령 신무기의 초반 커밋으로 되돌린다면, 이후의 변경 내역들도 덩달아 사라지기에 신무기에 오류가 날 수 있죠.
감사합니다.






감사합니다!