2014-11-28 10 views
4

git에서 merge upstream master 커밋에 추가 diff가 없는지 어떻게 확인합니까? 그 사람이 실제로는 업스트림 마스터 브랜치의 변경 사항을 병합하는 것 외에는 아무 것도하지 않았 음을 확인하려고한다고 가정 해보십시오.자식 병합을 확인하는 방법 추가 변경 사항이 없습니다?

유일한 차이점은 다른 커밋에서 발생했는지 확인하고 싶습니다. 그들은 'evil merge'을 수행하지 않았다.

병합 단계 중에 추가 변경 사항이 없는지 확인하는 방법이 있습니까?
또는 더 나은 점은 : 잠재적 인 '악의 병합'을 보여 줌입니다. 그래서 추가 작업을 수행했는지 알 수 있습니까?

예 시나리오 :

  P1---P2 P3---P4---P5---P6 
     /  \/ /  \ 
    A---B---C---D--E--------F---------G master 
        \ /
        C1---C2 

P1..P2: First pull request 
C1..C2: My working branch 
P3..P4: More work done inbetween 
P5: The commit that merges in master branch changes 
P6: More regular work 
  1. 누군가가 내의 repo에 끌어 오기 요청을 보냅니다 (P1..P2)
  2. 끌어 오기 요청은 환상적이다, 나는 좀 더 할 (E)
  3. 을 병합 개발 (C1..C2), 내 자신의 지점을 마스터 (F)에 통합하고 게시하십시오.
  4. 다른 사람이 t 그는 그동안 (P3..P4)
  5. 그들은 그 지역의 repo (P5), 더 변화 (P6를) 만드는으로 상향 변경 내용을 병합하고, 나는 그들이 동안 여분의 차이점에서 몰래하지 않았는지 확인 할 수있는 두 번째 풀 요청
  6. 을 보내 병합 (P5)?
+0

당신은'git diff --name-status master..branchName'을 시도 했습니까? – royki

+0

@Altius'git diff --name-status master..branchName'을 사용하면 변경된 모든 파일의 목록 만 보여줄뿐 실제 코드와 다릅니다. 또한 일반적으로 병합의 일부 였고 두 부모 모두에 포함 된 모든 파일을 표시합니다. 나는 부모님 모두가 아닌 * 차이점을 찾고 있습니다. '악의 병합'변경. – culix

+0

'SourceTree' [SourceTree] (http://www.sourcetreeapp.com/)를 사용 했습니까? 또는 Emacs에서 더 좋다. – royki

답변

1

차이점 diff를 실행하여 자식 변경 사항 병합에 기타 변경 사항이 포함되어 있는지 확인할 수 있습니다. 한 가지 방법이 있습니다.

  P1---P2 P3---P4---P5---P6 
     /  \/ /  \ 
    A---B---C---D--E--------F---------G master 
        \ /
        C1---C2 
  1. 원래 일반적인 부모 E와 마스터 지점의 마스터 브랜치의 모든 변화의 DIFF 계산은 F, 바로 병합하기 전에 커밋 :

    자식 사랑하는 EF> master_changes_to_merge. txt

  2. 'merge in master'커밋에서 변경된 모든 사항을 계산하십시오. P5

    자식 DIFF P4 P5>

  3. DIFF 그 master_changes_actually_merged.txt :

    DIFF master_changes_to_merge.txt master_changes_actually_merged.txt

경우 단계 3 에스 출력이 없으므로 병합 변경이 없어야합니다.

+0

그리고 누군가의 실제 지점 기록이이 도표의 것과 똑같은 것처럼 보이면 나는 당신에게 경의를 표합니다. – culix