2014-10-28 4 views
0

무엇이 복잡합니까 : "dev"브랜치에서 "master"브랜치로 마지막 커밋을 복사하고 싶습니다.분기에서 다른 분기로 커밋 커밋

나는이

git checkout master 
git cherry-pick a6b9463bec0a5240f6e945fbf4951c932751f28d 

을하고, 그리고 난 오류 얻을 :

git cherry-pick a6b9463bec0a5240f6e945fbf4951c932751f28d 
error: could not apply a6b9463... releasing v1.00 
hint: after resolving the conflicts, mark the corrected paths 
hint: with 'git add <paths>' or 'git rm <paths>' 
hint: and commit the result with 'git commit' 

git status 그것이 COMIT을 복사하는 복잡 이유가 표시되지 않습니다

$ git status 
# On branch master 
# You are currently cherry-picking. 
# (fix conflicts and run "git commit") 
# 
# Unmerged paths: 
# (use "git add <file>..." to mark resolution) 
# 
# both modified:  index.html 
# both modified:  js/boardDims.js 
# 
# Untracked files: 
# (use "git add <file>..." to include in what will be committed) 
# 
# config.xml.orig 
no changes added to commit (use "git add" and/or "git commit -a") 

제공을 다른 지점으로. 이 커밋을 master 브랜치에 복사하는 명령을 줄 수 있습니까?

감사

+0

충돌을 해결해 보셨습니까? (힌트 :'git mergetool') – dug

+0

네,하지만 나는 무엇이 터지는 지 이해하지 못합니다 : 3 개의 파일이 있습니다 ... – Louis

+1

3 개의 파일로 보지 마십시오. 기본적으로 3 개의 상태 (commit1, commit2) 중 하나의 파일입니다. , 해결 후) –

답변

1

당신은 올바른 명령을 실행하는 그리고 당신이 index.htmljs/boardDims.js에서 충돌 변경 사항이 있음을 말하고있다. diff 도구로 충돌을 해결하고 각각에 git add을 실행하고 마지막으로 git commit을 실행하여 병합을 커밋합니다.

+0

감사합니다. – Louis

0

커밋을 cherrypick 할 때 병합 충돌이 있기 때문에 "복잡합니다". 공통 파일에서 다른 브랜치의 커밋이 동일한 행을 변경하면 이는 정상적인 동작입니다.

당신은 당신 벚꽃의 선택, 당신은 "변화"가 아니라 파일 자체를 복사 할 때 충돌

1

here 병합 해결에 대해 뭔가를 배울 수 있습니다. 변경 사항을 복사 할 때 프로세스는 dev 브랜치에서 마지막 커밋의 패치를 작성하고 마스터 브랜치에 해당 패치를 적용하는 것과 매우 유사합니다. 패치가 실패하면 패치는 충돌을 해결하도록 지시합니다.

대부분의 시간 체리 피킹은 단일 커밋을 잡는 데 사용되지만 it can be used to grab a series of commits입니다.

Here's a visual explanation of cherry pickinggit mergetool을 사용할 수 있습니다, 충돌을 해결합니다. (하단의 슬라이드 쇼까지 스크롤하십시오)

관련 문제