• 카테고리

    질문 & 답변
  • 세부 분야

    개발 도구

  • 해결 여부

    미해결

git의 원리?

21.12.29 01:38 작성 조회수 104

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을 한다던가 했을때 추가/삭제가 계산되거나 계산된 전체 파일을 받아올 수 있는건가요?
 
용사 신무기 예시에서도 신무기의 초반 커밋을 지운다면
이후의 커밋에 같이 저장된게 아니기 때문에 신무기에 오류가 날수 있는 걸까요?

답변 1

답변을 작성해보세요.

1

안녕하세요 :)

 

네 맞습니다, git은 '변경 사항'을 기억합니다.

 

질문자님 말씀대로 만일 아래와 같이 커밋이 추가된다면,

 

첫 번째 커밋 - A 추가

두 번째 커밋 - B 추가

세 번째 커밋 - C 추가

 

각각의 커밋에는 '이전 커밋에 비해 무엇이 추가되었는지'만이 표현됩니다.

(전체 파일을 다 저장하지는 않습니다. 이는 용량을 지나치게 많이 잡아먹을테니까요)

 

pull을 했을 때나 

'가장 마지막 변경 사항'을 기준으로 pull을 하게 되고 

추가/삭제가 이루어질 때에도 '가장 마지막 변경 사항'을 기준으로 추가/삭제가 이루어지는 겁니다.

 

git은 변경 사항만을 저장한다! 라고 생각하시면 될 것 같습니다 :)

 

"용사 신무기 예시에서도 신무기의 초반 커밋을 지운다면 이후의 커밋에 같이 저장된게 아니기 때문에 신무기에 오류가 날수 있는 걸까요?"

 

라는 질문에 대해서는 그렇습니다.

 

이전의 커밋으로 되돌아간다면,

가령 신무기의 초반 커밋으로 되돌린다면, 이후의 변경 내역들도 덩달아 사라지기에 신무기에 오류가 날 수 있죠.

 

감사합니다.

루라님의 프로필

루라

질문자

2021.12.30

감사합니다!