2016-07-28 2 views
6

풀 요청 후 정리 포크, 커밋 (제목 Some small changes)를 만든 풀 요청을 제출하고이를 #12는 풀 요청 번호는 주요 저장소 (커밋 제목 Some small changes (#12), 병합있어). 여태까지는 그런대로 잘됐다.Github에서 : 나는 GitHub의 저장소를 포크 한

내 포크 (git rebase upstream/master, here 참조)를 업데이트하려는 경우이 저장소를 저장소에 두 번 커밋했습니다. 먼저 Some small changes으로하고 다시 Some small changes (#12)으로 다시 입력하십시오. 새 끌어 오기 요청을 만들면 Some small changes 커밋이 다시 끌어 오기 요청에 추가됩니다. 이 문제를 해결하는 방법은 두 가지가 있습니다

:

  1. 정리 내 포크, 모두가 하나에 저지른 this answer
  2. 병합을 참조가 참조 this answer

두 경우 모두 내 역사를 다시 쓰기 것을 포함 강제로 밀기 만하면됩니다. 풀 요청을하는 동안 포크를 동기화하는 더 좋은 방법이 있습니까?

답변

5

예. 나는 이것을 할 수있는 몇 가지 방법이 있다고 가정 할 것이지만 여기에는 내가하는 일이있다.

github의 저장소에 기여하려면 upstream으로 전화하십시오.

github에서 upstream 저장소를 포크합니다. 이것을 origin이라고 불러주세요.

그런 다음 개발 컴퓨터에서 origin을 복제하면 코드 작업을 할 수 있습니다. 이것을 local이라고 불러주세요. 이 저장소를 복제하면 origin이 원격 저장소로 설정되었을 가능성이 높습니다. upstream 저장소를 원격 저장소로 추가해야합니다.

그런 다음 변경하려는 경우 master 분기에서 변경하지 마십시오. 대신 변경 사항에 대한 새 분기를 작성하십시오. 예 : fix-issue-101

변경 사항이 만족 스럽다면 local 저장소에서 origin 저장소로 변경 사항을 푸시해야합니다. upstreamfix-issue-101 지점에서 당기기 요청을 origin에서 master 지점 upstream에 만들 수 있습니다.

끌어 오기 요청이 수락되기를 기다리는 동안 localorigin에 분기를 만들 수 있으므로 추가 끌어 오기 요청을 만들 수 있습니다.

upstreammaster 변경이있는 경우, 즉이 당신의 풀 요청이 당신이 localmasterupstreammaster에서 끌어 것, 받아 들여졌다. 그런 다음 localmastermasterorigin에 푸시합니다. 이렇게하면 모든 저장소의 master 분기가 다시 동기화됩니다.

나는 이해할 수있는 영지에 이것을 작성했으면 좋겠다. 자유롭게 질문을하면 기분에 따라 업데이트하겠습니다.

+0

대단히 감사합니다. 이전에 사용했던 답변보다 훨씬 명확하고 대답이 좋습니다. –

+0

이것은 훌륭한 대답이며 명확하고 원산지 및 업스트림, 현지 용어에 대한 지식이 없습니다. – Fernando

+0

게다가 GitHub는 끌어 오기 요청이 병합되면 원격 지점을 한 번 클릭하여 삭제할 수 있습니다. Pull Request 페이지의 맨 아래에 병합되면 "branch 삭제"버튼이 나타납니다. –