2017-12-06 35 views
0

우리는 두 개의 가지 가지를 병합하려고합니다.예기치 않은 결과를주는 병합 병합

This은 병합 커밋입니다.

This은 소스 커밋의 파일 링크입니다. This은 대상 확약의 파일 링크입니다.

커밋 그래프에 따라 : link

commit graph

폐쇄 공통 조상 오른쪽 01886ab 커밋인가? 글쎄 하나는 the following 파일 버전입니다.

git merge에 대한 나의 이해는 "A"를 "B"에 "A"를 "A"와 병합하면 "B"를 출력해야한다는 것입니다. 이를 바탕으로 나는 다음과 같은 코멘트에 문제가 있습니다 : "다음 두 개/세개의 매핑은 대칭입니다 ..."(30/31/32 행).

기본 파일에는 "three"가 있습니다. 소스 파일에는 "2"와 대상 "3"이 있습니다. 내 이해에 따르면, 그것은 "2"로 병합해야합니다.

"3"(merge file)으로 병합되었습니다.

감사합니다.

+1

커밋을 병합하지 않고 분기를 병합합니다. – choroba

+0

@choroba 코멘트 주셔서 감사합니다. 나는 첫 번째 줄을 편집했다. 그래도 내가 뭘 놓치고 있는지 알기나 해? –

+1

@choroba : 사실, 커밋을 병합합니다 :'git merge foobranch'는 다음을 의미합니다 : *'foobranch'가 가리키는 커밋 해쉬를 찾습니다. 보세요'HEAD'. 이 커밋의 병합 기반을 찾으십시오. 베이스를 기본 커밋으로 사용하여 병합하고, 'HEAD'를 현재 또는 로컬 헤드로, 'foobranch'가 원격 헤드로 지정하는 커밋 * (1) 병합이 필요하고 (2)이 병합 - as -a-verb가 모두 잘 어울린다.'git merge'는 (3) 평소와 같이 현재 브랜치에서 merge commit * (형용사/명사와 병합) 인 새로운 커밋을 만든다. 그 두 부모. – torek

답변

1

이 병합을 로컬로 실행할 때 병합 충돌이 있습니다. 충돌은 db30386422f648a3e3382f5648e987bfc178d93d의 조상 인 6d8450ab64821a280aa0e2d20c42e4929d028812 커밋에서 공백을 추가했습니다 (The following...). 조상 2c0135217daa3fefbbc7e73a6ee94682c33a9b81333d343af1ac436eff598231957e9705e4121dab 커밋에서 threetwo으로 변경했습니다. 더욱이 병합 커밋 7f46cd43102b1f63bf0a5416a376b7c880313b1d을 체크 아웃하고 git blame contracts/DutchExchange.sol을 실행하면 32 행에 병합 커밋에 개행이 있음을 알 수 있습니다. 질문에 대답하기 위해 병합 충돌을 어떻게 해결했기 때문에 3 가지로 병합 된 것처럼 보입니다.