나는 아마도 옳은 것을 얻지 못할 것이지만 누구나 내게 설명 할 수 있겠는가? git merge
(같은 지점)은 왜 안되는가? git rebase
은 왜 충돌 하는가?Git : 병합이 수행되지 않는 이유는 rebase가 충돌하는 이유는 무엇입니까?
내가 알고있는 한, git merge
은 동일한 커밋을 적용하고 패치로 내 브랜치에 적용하는 반면, git rebase
은 현재 브랜치에서 커밋하기 전에 다른 브랜치에서 커밋을 넣습니다. diff
은 동일하지 않을 수도 있지만, 아마도 반대가 될 수 있습니까? 내 커밋으로 다른 브랜치를 패치하는 것은 왜 다른 커밋으로 내 브랜치를 패치하는 것이 문제가 아닌지 잘 모르겠습니다.
나는 당신이 말하는 것을 이해하지만, 전적으로 그것을 얻지는 못합니다. 내 지점 A가 a, b 및 c를 저지른다고 가정 해보십시오. 그런 다음 커밋 d와 e를 사용하여 지점 B를 만듭니다. Commit f가 브랜치 A에서 생성됩니다. ** Rebase ** (브랜치 B에서)는 a, b, c, f, d, e가됩니다. ** 병합 ** 결과는 a, b, c, d, e, f입니다. 이제 지구상에서 어떻게 C가 커밋 c와 병합 충돌을 일으킬 수 있습니까? – minitauros
@minitauros (1) 병합으로 인해 두 개의 분기가 연결됩니다. 하나는 a, b, c, f가 있고 하나는 선형 기록이 아니라 a, b, c, d, e입니다. (2) 지점 A에서 만들어진 커밋 F가 충돌을 일으키지 않는다면 리베이스 할 때 충돌을 일으킬 수있는 방법을 볼 수 없습니다 (자세한 예를 들어 보면 좋을 것입니다). (3) 그러나 D가 F와 충돌하면 E가 충돌을 일으키고 rebase는 충돌을 재현하지만 병합은 일어나지 않습니다. – coredump
그럼, 거기에 대한 설명 주셔서 감사합니다! 좀 더 명확하게 정리합니다. 불행히도 나는 더 이상 예제를 제시하지 못했지만 (다시 말하면), 같은 질문이 생기면 다시 한 번 그 질문에 답한다면 나는이 게시물을 더 많은 정보로 업데이트 할 것이다. :) 지금은이 대답이 충분히 좋은 것 같아요, 고마워요! – minitauros