답변:
기능 분기 (예 :)에서 다음을configUpdate
실행하십시오.
git fetch
git rebase origin/master
또는 더 짧은 형태 :
git pull --rebase
이것이 작동하는 이유 :
git merge branchname
분기에서 새 커밋을 가져 와서 branchname
현재 분기에 추가합니다. 필요한 경우 자동으로 "병합"커밋을 맨 위에 추가합니다.
git rebase branchname
분기에서 새 커밋을 가져 와서 branchname
변경 사항 아래에 삽입합니다. 보다 정확하게는 현재 브랜치의 히스토리를 수정하여의 branchname
변경 사항과 함께 팁을 기반으로합니다 .
git pull
기본적으로와 동일합니다 git fetch; git merge origin/master
.
git pull --rebase
기본적으로와 동일합니다 git fetch; git rebase origin/master
.
그렇다면 왜 git pull --rebase
보다 사용하고 싶 git pull
습니까? 다음은 간단한 예입니다.
새로운 기능에 대한 작업을 시작합니다.
변경 사항을 푸시 할 준비가 될 때까지 다른 개발자가 여러 커밋을 푸시했습니다.
당신이 경우 git pull
(병합을 사용하는), 변경 사항이 새로운 커밋에 의해 매장 될 것이며, 자동으로 생성 된 병합에 추가하여 커밋합니다.
당신이 경우 git pull --rebase
대신, 자식은 빨리 감기 마스터가의 업스트림 것, 그 다음 상단에 변경 내용을 적용합니다.
나는 그것을 발견했다 :
$ git fetch upstream
$ git merge upstream/master
pull --rebase
있었기 때문에 작동하지 않았습니다 origin
. 당신이했다면 그것은 효과가 있었을 것이다 git pull --rebase upstream/master
.
현지 지점으로 전환
> git checkout configUpdate
원격 마스터를 지점에 병합
> git rebase master configUpdate
충돌이있는 경우이를 수정하고 충돌 한 각 파일에 대해 명령을 수행하십시오.
> git add [path_to_file / conflicted_file] (예 : git add app / assets / javascripts / test.js)
리베이스 계속
> git rebase-계속
git rebase가 나를 위해 작동하지 않는 것 같습니다. git rebase 후, 로컬 브랜치에 변경 사항을 푸시하려고 할 때 오류가 계속 발생합니다 ( "힌트 : 현재 브랜치의 끝이 원격 상대방 뒤에 있기 때문에 업데이트가 거부되었습니다. 원격 변경 사항을 통합하십시오 (예 : 'git pull). .. ')) 다시 당기기 전에. ") git pull 후에도. 마침내 나를 위해 일한 것은 git merge였습니다.
git checkout <local_branch>
git merge <master>
나와 같은 초보자라면 git merge vs git rebase에 대한 좋은 기사가 있습니다. https://www.atlassian.com/git/tutorials/merging-vs-rebasing