2012-11-26 2 views
2

우리는 공유 자식 저장소를을 리베이스. 포크의 각 지점으로 업스트림 저장소의 변경 사항을 수시로 가져온 다음 dev에 내 기능 분기를 리베이스합니다.자식 모두가 사용하고 우리는 두 가지</p> <ul> <li>마스터</li> <li>dev에</li> </ul> <p>나는이 REPO 내 자신의 포크를 가지고있는 것을 개인 기능 지점

즉.

포크

  • 마스터
  • dev에
  • feature1

명령 :

이제
git checkout dev 
git pull upstream dev 
git checkout feature1 
git rebase dev 

시간에서 나는 다시 내 feature1 분기를 밀어 이동 시간 내 포크 내가 내 지점 내가 말했어 나도 구식이고 당기기를 한 다음 병합 충돌을 일으킨다.

저는이 포크/지점에서 일하는 유일한 사람이므로이 병합 충돌이 발생하는 이유에 대해 혼란 스럽습니다.

푸시 된 브랜치를 리베이스하는 데 아무 문제가 없는데도 문제가되지 않습니까? 이 문제를 해결할 방법 또는 따라야 할 더 나은 워크 플로

답변

2

변경 사항을 다시 적용하기 때문에 이러한 현상이 발생합니다. 일단 브랜치가 이전에했던 것과 똑같은 커밋을 포함하지 않으면, 동일한 (또는 비슷한 변경 사항)을 반영하는 커밋이 새로 포함됩니다. 이러한 변경을 푸시하려고하면 git은 대상 저장소의 현재 분기에서 커밋이 해당 분기의 새 팁으로 설정하려고하는 커밋의 조상이 아니라는 사실을 알게됩니다.

빨리 감기가 아니더라도 밀어 넣기를 강제로 수행하려면 git push -f을 사용해야합니다. 그러나이 작업을 수행 할 때 해당 지점에서 다른 변경 사항을 지우지 않도록 조심해야합니다. 해당 분기가 단일 저장소에서만 수정 된 경우 해당 분기에서 -f을 사용하는 것이 좋지만이 플래그를 사용하여 master 또는 dev 분기로 푸시하지 않도록주의해야합니다.