2016-11-29 3 views
0

repo에 pull 요청을해야합니다. 프로젝트를 복제하면 분기가 하나만 있습니다. masterGit - pull 요청 전에 master와 feature branch 사이의 충돌을 수정했습니다.

나는 새 분기 feature을 체크 아웃하고이 분기에 변경 사항을 적용합니다.

내 지사를 Github으로 푸시하고 이제 풀 요청을 할 수 있습니다. 그래서 나는 그것을한다. 그러나 내가 갈등을 가지고있는 지금 그것은 나에게 이야기한다. enter image description here

나는이 문제를 이해합니다. masterfeature에서 작업 할 때 마스터에 대한 마지막 변경 사항을 "가져 오지"않았기 때문에 feature보다 앞서 있습니다.

어떻게 해결할 수 있습니까? 마스터의 마지막 변경 사항을 내 feature 브랜치에 "가져올"수있는 방법은 무엇입니까?

+1

로컬로 병합 또는 리베이스해야하며 결과를 밀어야합니다. – CollinD

답변

4

병합을 통해 해결 :

git fetch origin   # gets latest changes made to master 
git checkout feature  # switch to your feature branch 
git merge master   # merge with master 
# resolve any merge conflicts here 
git push origin feature # push branch and update the pull request 

REBASE를 통해 해결 :주의 깊게

git fetch origin   # gets latest changes made to master 
git checkout feature  # switch to your feature branch 
git rebase master  # rebase your branch on master 
# complete the rebase, fix merge conflicts, etc. 
git push --force origin feature 

주 그 REBASE 효과적으로를 재 작성으로 아마 필요 리베이스 후 푸시에 --force 옵션 feature 가지. 즉, GitHub의 이전 브랜치를 강제로 푸시해야합니다.

병합 또는 리베이스를 수행하든 관계없이 충돌이 해결되고 검토자가 끌어 오기 요청을 완료 할 수 있어야합니다.

0
$ git checkout feature     
$ git fetch 
$ git pull origin master 

이제 충돌이 발생해야합니다. 지금 당신은 당신이 $의 자식 체크 아웃

추가 --ours 당신 (features 변경)을 유지 커밋 feature 지점에 밀어하려면, 마스터의 변경

$ git status       # See the untracked files (conflict files) 
$ git checkout --theirs <file-name> # Accept the master's change 

을 유지하거나하려는 경우

$ git commit -am <commit-message>  # Add & Commit 
$ git push origin HEAD     # Push to remote feature branch