2012-11-26 3 views
11

GitHub의 공통 워크 플로에서 git 관련 문제가 계속 발생합니다. 나는 REPO 보류중인 끌어 오기 요청으로 업스트림 git 변경 사항 병합

  • 포크

    1. 나는
    2. 내가 업스트림 개발자가 내 풀 요청에 앉아있는 동안의 repo에게
    3. 트위 엄지 손가락을 상류 끌어 오기 요청을 일부 변경을 커밋합니다.
    4. 업스트림 개발자가 자신의 repo를 변경합니다.
    5. 풀 요청이 처리되지만 트리 변경으로 더 이상 적용되지 않으므로 풀 요청을 업데이트하라는 메시지가 표시됩니다.
    6. 나는 변화
    7. 나는 그것이 단정하고 깔끔하기 위해 내 풀 요청에 커밋 리베이스를 저지, 충돌을 해결, 내 REPO에 상류에서 & 병합 변화를 가져옵니다.

    내 견해 요청에는 현재 업스트림 개발자의 변경 사항을 포함하여 2 단계와 7 단계 사이에 발생한 모든 변경 사항이 포함되어 있습니다. 최근의 예에서 이것은 10 라인의 풀 요청을 12,000 라인 이상으로 확장했습니다.

    원래 요청을 변경하지 않고 원래의 커밋을 이후 버전의 업스트림 저장소에 어떻게 다시 적용해야합니까?

  • 답변

    11

    변경이

    7) 나는 &이 변경 사항을 적용, 내 REPO에 상류에서 변경 내용을 병합 충돌을 해결 가져옵니다.

    8) 내 요청에 따라 리셋하여 깔끔하고 깔끔하게 만듭니다.

    에 나는 단정하고 깔끔하기 상류에 내 REPO을 리베이스. 당신을 가정

    는 업스트림/마스터에서이 분기를 포크 : 이것은 현재 마스터의 상단에 커밋을 재생합니다

    git rebase -i upstream/master 
    

    .충돌을 해결 한 후 최종 결과는 마치 현재 갈림길처럼됩니다.

    +2

    이것은 분명히 올바른 방법이지만, 나는 끔찍하게 폭발 시켰을 것이라고 확신합니다. 즉, 나쁘게 잘못 될 수있는 후속 조치가 있습니다. 제가 원래 마스터에게이 rebase를 내 repo에 푸시 할 때, 당신이'--force'를 지정했거나 모두 엉망이 될 수도 있습니다. 다시. – Synchro

    2

    당신이 이미이 일을하고 있다면 당신의 질문을 보완 할 수 없지만, 풀 요청을 할 때 가장 쉬운 방법은 그것을위한 별도의 브랜치를 만드는 것입니다.

    그런 식으로 끌어 오기 요청에 커밋이 있어야하는지 쉽게 정의 할 수 있으며 나중에 새 변경 내용을 포함하도록 끌어 오기 요청을 업데이트 할 수 있습니다.

    그러면 업스트림에서 새 변경 사항을 통합하려는 경우이를 가져 와서 주제 분기를 리베이스 할 수 있습니다.

    GitHub의에서 끌어 오기 요청을 할 때, 당신은 다음 올바른 커밋이 당겨되어 있는지 확인한다이 지점을 선택할 수 있습니다.

    당신이 다음이 지점에 밀어마다 업데이트됩니다 (심지어 -f 밀어) pull 요청을 자동으로.

    +0

    불행히도이 방법은 도움이되지 않습니다. 분기에서 똑같은 문제가 발생할 수 있으므로 문제를 단순히 옮기는 것입니다. 여기에서 진행되는 자신의 변화 아래에서 양탄자를 당기는 요소가 있습니다. 내가 찾고있는 것은 다른 점에서 시작하여 변경 사항을 다시 적용하는 방법이지만, 여기에서는 이전 포크에 적용된 내 자신의 변경 사항과 같이 업스트림에서 가져온 변경 사항이 너무 많이 포함되어 있습니다. – Synchro

    관련 문제