2012-06-06 2 views
7

코드의 각 결함에 대해 별도의 분기를 만듭니다. 결함이 고정 될 때 나는 마스터에서이 지점을 병합, 그래서 같은 역사를 가지고 (우리가 수정 두 가지를 참조) 아래 그림 :병합 된 지점에 대해 git diff를 얻습니다.

  defect1 fix   defect2 fix 
     a---b---c---d   e---f 
     /   \  / \ 
---o---1---x---y---z---2---o---3---w---4---o--- 

문제는 지점의 시작 사이 (fix1에 대한 DIFF 얻는 방법 (1) 및 분기 끝 (2)) 또는 fix2 ((3)과 (4) 사이의 차이)에 따라 달라집니다.

업데이트 :

git diff 1..d 

이것은 차이점을 보여줍니다 : 실제 질문은 대답은 간단하다 다음 명백한 diff 명령을 diff <commit> <commit>

+0

마찬가지로 의견. 플라스틱 SCM (www, plasticscm.com)은 작업/결함 패턴 별 분기와 완벽하게 맞습니다.플라스틱을 사용하면 지점을 마우스 오른쪽 버튼으로 클릭하고 diff 분기를 누를 수 있습니다. 명령 줄을 사용하면'cm diff ' –

답변

6

을 수행 할 수 ad 또는 ef의 SHA의 summs을 파악하는 방법이다 defect1 fix 분기점 (즉, 1)과 끝 (즉, d)의 분기점 사이에 있습니다. https://stackoverflow.com/a/2458173/520162 :이 답변에 표시된대로 defect1 fix 지점의 시작을 찾기 위해

git merge-base master defect1-fix-branch 

를 사용합니다.
git merge-base의 설명서에 따라 1이 제공됩니다.

defect1 fix 분기의 끝은 단순히 이름으로 식별됩니다. 그래서, defect1 fix에 소개 된 모든 차이를 발견, 당신은

git diff 1..defect1-fix-branch 
+0

할 수 있습니다. 바로 ' .. '사이의 변경을 원하고, 태그가 지정되지 않은 경우 'a'와 'd'의 'SHA'를 알아내는 방법이 있습니다. –

+0

@AlexanderNikolayev : 업데이트 된 답변을 참조하십시오. – eckes

+1

''git diff .. '이 아니겠습니까? 왜냐하면 diff를'1'과'a'도 포함하기를 원할 것이기 때문입니다 (이것은 분기 개발의 일부입니다). – Shahbaz

1

은 무엇에 대해 수행해야합니다

git diff <commit> <commit> 

하면 커밋 매개 변수는 실제 커밋의 SHA 체크섬있는 곳. 당신이 병합 된 후 기능 분기 도입이 변경되는지보고 싶다면

+1

예, 그렇지만 이러한 커밋의 SHA 체크섬을 계산하는 방법은 무엇입니까? –

+0

'git log'에서 확인할 수 있습니다. –

0

, 당신은 단순히 실행

git diff HEAD^..HEAD 

master 지점에. 이는 HEAD (병합 커밋) 첫 번째 부모와 HEAD 간의 차이점을 보여 주며 전체 지형지 물 분기 병합이 마스터 분기에 가져온 차이를 효과적으로 표시합니다.

가지 복잡한 :

관련 문제