그러나 실제로 리베이스에는 방향 제약이 없습니다. 마스터를 브랜치로 리베이스하거나 그 반대로 리베이스할 수 있습니다.
기본적으로 Merge는 두 트리의 기록 차이를 무시하고 Merge를 실행하는 순간에만 차이점을 병합하는 반면, Rebase는 두 트리의 기록 차이를 정리한 후 병합합니다. .
기억을 시각화할 수 있습니다:
Merge는 "하나로 병합하다"를 의미합니다. (Merge는 두 당사자를 병합하는 것만이 아니기 때문에 "둘"이 아니라 "and"라고 말한 점에 유의하세요.)
리베이스(Rebase)는 '당신을 내 아래에 두고, 내가 당신 위에 서서 마침내 합쳐지겠다'는 뜻입니다.
예를 들어 master에서 브랜치를 분리하고 이를 기반으로 커밋을 했는데 이때 다른 사람이 master에 새로운 커밋을 하는 경우도 있습니다. 새 브랜치에서 마스터를 병합하면 새 커밋이 내 브랜치에 나타나서 내 변경 사항과 마스터 변경 사항의 조합을 기록합니다. 두 줄이 하나로 합쳐진 것과 같습니다. 리베이스하면 분리한 지점부터 시작하여 마스터에 대한 새 커밋이 먼저 채워진 다음 업데이트 위에 내 커밋이 다시 작성됩니다. 따라서 콘텐츠는 여전히 병합되어 있지만 내역은 순차적입니다. 여러분의 관점에서는 마치 마스터에서 분리된 적이 없는 것처럼 보입니다.
이력기록은 고려하지 않겠다고 하셔서 더 말씀드릴 게 없네요...
그러나 실제로 리베이스에는 방향 제약이 없습니다. 마스터를 브랜치로 리베이스하거나 그 반대로 리베이스할 수 있습니다.
기본적으로 Merge는 두 트리의 기록 차이를 무시하고 Merge를 실행하는 순간에만 차이점을 병합하는 반면, Rebase는 두 트리의 기록 차이를 정리한 후 병합합니다. .
기억을 시각화할 수 있습니다:
예를 들어 master에서 브랜치를 분리하고 이를 기반으로 커밋을 했는데 이때 다른 사람이 master에 새로운 커밋을 하는 경우도 있습니다. 새 브랜치에서 마스터를 병합하면 새 커밋이 내 브랜치에 나타나서 내 변경 사항과 마스터 변경 사항의 조합을 기록합니다. 두 줄이 하나로 합쳐진 것과 같습니다. 리베이스하면 분리한 지점부터 시작하여 마스터에 대한 새 커밋이 먼저 채워진 다음 업데이트 위에 내 커밋이 다시 작성됩니다. 따라서 콘텐츠는 여전히 병합되어 있지만 내역은 순차적입니다. 여러분의 관점에서는 마치 마스터에서 분리된 적이 없는 것처럼 보입니다.