편집 (질문 당 편집) : 나는 이것을 할 수있는 완전히 신뢰할만한 방법이 없다고 생각합니다. 기본적으로 문제가 C
A
에 일부 변화가 겹치는 경우 B
-C
일부 변경 취소하거나 덮어 쓰거나 그런 경우 왜 일반적으로 알려 C
사이 B
- 그것은의 불가능은 diff를 수정겠나이다. 우리가 발산을 부여하고있다
이 같은 그래프를 커밋 :
이
a1--a2--...--a_i_max-minus-1--A
/
...--C
\
b0--...--b_j_max-minus-1--B
(중 내가 = J 또는 내가 즉, J을, ≠ 아무런 제약이 없다, 여기에 다른 길이있다 하나 또는 다른 것을 의미하는 것은 아닙니다). 여기에 A
이라는 커밋은 실제로는 최종 Ai이고, 마찬가지로 B
입니다. 사용자는 C-VS-B 일부 K <리터 위해 C-VS-A I, 심지어 K -Vs-A 리터 중 어느 하나에 포함되어 있는지 발견 할. 그게 사실인지 알기 위해 철저히 테스트 할 수는 있지만 비용이 많이들 것입니다. 또한 "논리적으로 사실"이지만 시퀀스의 최종 커밋은 C-vs-B와 완전히 동일하지 않습니다. 병합 충돌을 해결하기 위해 수정되었습니다.
철저한 테스트는 아마도 최대한 근접한 테스트입니다. A i 일련의 커밋에서 커밋 메시지 또는 커밋 노트가 스쿼시 병합에 첨부되도록 작업 흐름 요구 사항을 적용 할 수 있다면 가장 좋을 것입니다. 그런 다음 커밋을 열거하고 각각에 대해 메모를 검사해야합니다 나는 C를 대파 한 결과이다..
이 문제가 잘 형성-에서하지 않는 이상하지 힘내 - 토지 때문에 그런 일이 "A
의 변화"로 존재하지에 (원래의 대답은 다음과). A
이 브랜치 이름 일 경우 특정 커밋을 지정합니다. 변경 사항을 찾으려면을 두 개의 커밋과 git diff
커밋해야합니다.브랜치 이름 B
에 대해서도 마찬가지다 : 브랜치에 대한 팁 커밋 인 B
을 (이전의 커밋과 관련하여) 변경 세트로 바꾸려면 먼저 커밋을 선택해야한다. 일반적으로
, 사람들이 물어 보면, 그들은 특정 셋째을 염두에 커밋 :
o--o--A <-- BranchA
/
...--o--*
\
o--o--B <-- BranchB
이 세 번째 커밋, 표시 여기 *
, 두 가지가 일명 '까지 가입 "장소이다 병합베이스.
커밋 *
이 비대칭 diff를 생성하기위한 (단일) 세 번째 포인트로 사용하기로 한 커밋이 아닌 경우이 나머지 답변 중 아무 것도 적용되지 않습니다. 그러나 이 인 경우 병합을 수행 한 다음 병합 결과를 관심있는 분기 팁과 비교하는 것이 좋습니다.
병합 모든 변경 사항의 조합 걸릴 (*
에서 A
에, 그리고 *
에서 B
에) 및 병합에 넣어 것입니다 커밋 :
$ git checkout --detach BranchA # doesn't matter which one we use
$ git merge BranchB
결과를 (어떤 병합 충돌이없는 경우)에서 하나는 (diffing의)를 비교하여 B
시작하는 경우처럼 이제 볼 수 있습니다
o--o--A <-- BranchA
/ \
...--o--* M <-- HEAD (detached)
\ /
o--o--B <-- BranchB
*
일등석 A
는 속M
대 : 여기 또한 *
일등석 B
DIFF으로 기여하지 않은 *
일등석 A
DIFF에 의해 기여 변화가 나타
$ git diff HEAD^2 HEAD # or git diff BranchB HEAD
뭐든지.
마찬가지로, *
일등석 A
DIFF에없는 있었다 *
일등석 B
DIFF에 의해 기여 변경 표시됩니다 A
커밋에 대해 병합 커밋 비교 :
$ git diff HEAD^1 HEAD
이 git show -m
를 사용하여 수행 할 수 있습니다 같은 시간에 두 개의 별개 diff를 볼 수 있습니다. 의 경우는 git show
입니다.
주셔서 감사합니다. 나는 그것을 전부 소화하고 나가 나가 찾고있는 무엇을하는 경우에 결정하기 위하여 그것을 몇 시간 읽어야한다. 여기에 귀하의 예문에 대한 질문을 다시 말하면서, *에서 A 로의 변화가 *에서 B로 나타나는지 알고 싶습니다. * -to-B에서 도입되었을 수도있는 추가 변경 사항은 신경 쓰지 않습니다. –
그런 경우 merge-vs-B가 비어 있는지 확인하지 않고 도망 갈 수 있습니다. – torek
나는 더 나은 해결책을 찾으려고 아직도 노력 중이다. 나는 내가 찾고있는 것이 더 명확하게되기를 희망하면서 나의 OP를 수정했다. 시간이 있으시면 한번보세요. –