2017-02-14 2 views
1

나는 belows로 같은 마스터 지점에서 하나 개의 파일이 있습니다이 망할 놈의 마스터 지점의 파일을 대체 할 -X 인수 합병,하지만 여전히 일부 삭제 된 코드를 가지고

다음
void func(int a, string b) { 
    ... 
    if (a == 1) { 
     ... 
    } 
    ... 
} 

.... 
func(1, "test"); 
... 

내가 체크 아웃 새로운 지점 B1을, 어떤 일을 및 파일에 변경 :

void func(string c, string b) { 
    ... 

    ... 
} 

.... 
func("test", "test"); 
... 

한편, 마스터 브랜치가 다른 사람에 의해 업데이트되었습니다, 그래서 나는 (내가 그것을 리베이스 수없는 이유가)이 분기를 병합 할 필요가있다. 하지만 삭제 된 코드 세그먼트로 작동

git merge -X ours master 

: 충돌이 병합 이후로, 나는 -X 인수를 추가

void func(string c, string b) { 
    ... 
    if (a == 1) { 
     ... 
    } 
    ... 
} 

.... 
func("test", "test"); 
... 

나는 경우 병합 일부 인수를 놓친 건가? 병합 충돌이 이후

+0

'-X ours'는 전체 파일 단위로 작동하지 않습니다. 다른 질문에 내 대답을 참조하십시오 : http://stackoverflow.com/a/42104116/1256452 – torek

답변

1

는, 내가 -X 인수 그것은 따라

을 추가 할 때 추가-X ours : 제대로 충돌이 있었다 초기 병합 (자식 병합 중단)을 취소해야, -X ours 병합 옵션으로 새 병합을 시도하기 전에 코드의 상태를 확인하십시오.
그런 다음 다시 시도 할 수 있습니다.

그리고 삭제 된 코드가 자신의 코드와 동일한 줄에 있는지 확인해야합니다 (새 버전에서 삭제 된 코드가 master으로 수정 된 경우 충돌이 있음을 의미). -X ours은 충돌이있는 경우에만 작동합니다. 그 라인들.

+0

예, "git merge master"를 먼저 시도했는데 충돌이있었습니다. 현재 브랜치의 코드는 내가 필요로하는 것이기 때문에 -X를 추가한다. 문제는 삭제 된 코드가 여전히 존재한다는 것입니다. 삭제 된 코드는 마스터 브랜치에 의해 수정되지 않았지만 동일한 파일에 수정 된 다른 것이 있습니다. –

+0

@FeiyuZhou 참이지만 병합을 먼저 취소 한 다음 -X our로 다시 시도해야합니다. – VonC

+0

예, 취소하려면 --abort –