2011-11-24 4 views
5

를 저지 나는 다음과 같은 자식의 나무가 있습니다. 이로 인해 우리는 일부 논리적 인 복제물을 남기고, 그 지점은 내가 삭제할뿐입니다. 예를 들어, ssl_tests "Modification : Changing names ..."아래의 변경 사항은 dev에서도 볼 수 있습니다.힘내 REBASE 선택

자, 아마도 이것은 내 체리 선택에 대한 이해가 부족한 것일 수 있습니다. 그러나 이러한 커밋은 다른 해시를 가지므로 다른 커밋이 맞습니까? 비록 그들이 논리적으로 동일하더라도.

dev에 ssl_tests를 rebase 할 때, git은 그 체리를 고른 커밋이 업스트림이라는 것을 알아 내고 ssl_tests에서 "New Feature : Unit tests ..."커밋만을 리베이스합니다.

평소와 마찬가지로, 힘내 자, 이것은 훌륭합니다! 이것은 내가 원하는 것입니다! 내 질문 비록 그들이 다른 해시가 있다면 다른 커밋 rebase 필요가 없다는 걸 알아낼 자식입니까?

감사합니다. 스티븐

+0

Git에서 병합 마법에 대한 좋은 글은 [어떻게 왜 Git을 SVN보다 잘 병합합니까?] (http://stackoverflow.com/q/2471606/11343) – CharlesB

답변

5

힘내는 단지 여기 SHA1 이상을보고 있습니다. 그것은 실제로 커밋의 내용을 고려하고 있습니다. 커밋을 적용하고 커밋을 적용하지 않아서 생성되는 트리가 동일하다는 것을 알 수 있습니다. 즉, 새 기본에 적용하면 커밋은 비어있게됩니다. 따라서 리베이스는 그 커밋을 포함하여 신경 쓸 필요가 없다는 것을 알기에 충분히 똑똑합니다.