4
현재 브랜치로 C로, 다음과 같은 개정 그래프가 있다고 가정
:왜 자식은 원래의 것과는 다른 SHA1을 만들었습니까?
c a
\/
b
git rebase --onto a b
은 다음과 작성
c
/
a
/
b
과에 그래프를 반환 git rebase --onto b a
:
c a
\/
b
그러나 두 재편성 전에 c의 새 SHA1은 c의 이전 SHA1과 다릅니다. 왜 이런 경우입니까?
흥미 롭습니다. 나에게 혼란 스러웠던 점은 rebasing이 수행되고있는 새로운베이스를 지나치는 추가 커밋이 없었을 때 SHA1을 변경하지 않는다는 것이 었습니다. 새로운 기반을 넘어선 추가 작업이 있다면 새로운 커밋을 만들어야하고 따라서 새로운 타임 스탬프가 필요합니다. – jonderry
@ jonderry : rebase는 지능이 있어도 아무 것도하지 않을 정도로 충분히 지능이 있다고 생각합니다. – Cascabel
* 역사 *만큼 타임 스탬프를 지적하지 않겠습니다. 커밋에 부모가 있고 해시에 포함되어 있습니다. 부모가 변경되면 커밋이 변경됩니다. 부모가 변경되지 않고 커밋에 대한 다른 변경 사항이 없다면 반드시해야 할 일이 없습니다. – Dustin