2013-08-05 3 views
3

일부 커밋 만 풀링하려는 경우에는 어떻게됩니까?Git pull은 bitbucket에서 특정 커밋 만 요청합니다.

당신은 repo, Foo를 가지고 있고 repo를 Bar라고 말하면됩니다. 그런 다음 커밋 1과 2를 바로 만듭니다. Foo에게 2 번 커밋을하고 싶습니다. 어떻게 할 수 있습니까?

저는 bitbucket을 git 호스트로 사용하고 있기 때문에 명령 행에서 bitbucket을 사용해야한다고 확신합니다. 고마워.

답변

5

내가 git cherry-pick 여기에 아마 더 좋은 생각,하지만 난 그렇게 다목적의 부분적으로 있기 때문에, git rebase -i를 사용하여 좋아, 당신은 지식을 재사용 할 수 있습니다.

(1) 먼저, 새로운 지점 (즉,이 요청 당기기됩니다) 작성 :

git checkout -b commit2_PR

(2) 그런 다음, 대화 형 REBASE (상호 작용에 대한 -i) :

git rebase -i commit2_PR^^ commit2_PR

NB : 첫 번째 인수는 마지막 (가장 오래된) 커밋 인 부모이어야합니다.

(3) 귀하의 편집자는 최근 2 회의 커밋 - 그리고 하단의 매우 유용한 지침에 따라 해고 될 것입니다. 이제 Pull Request에서 원하지 않는 커밋 행을 삭제하십시오 (이 경우 커밋 1 만 삭제하고 커밋 2 만 남겨 둡니다). 이제 저장하고 종료하십시오. git rebase은 그 일을 할 것입니다.

(3.1) 병합 충돌이있는 경우 중지되고 사용자가 지침에 따라 일반적인 방법으로 수정해야합니다. 이것은 역사와 간섭 할 때 놀랄만큼 자주 발생합니다.

(4) 마지막으로,이 새 분기 commit2_PR - 그 지점을 당겨 요청하십시오. 끝난.


리베이스 (및/또는 인터넷 검색)에 대한 맨 페이지를 읽고 몇 번 시도해 보는 것이 좋습니다. git rebase 인수로 할 수있는 단순화가 있습니다 만 여기에서 복잡하지 않고 맨 페이지를 읽으 려합니다. 두려워하지 마세요 !!! 새로운 브랜치를 만들었 기 때문에 아무리 엉망으로 만들었더라도 상관 없습니다. 그냥 브랜치를 지우고 다른 브랜치를 만들어야합니다. 원래 지점은 변경되지 않고 그대로 있습니다.

풀 요청은 읽기 쉽도록 만들 수 있습니다. 스쿼시 (결합) 커밋, 순서 재 지정, 개별 커밋 (git add -p 및 새 커밋 만들기), 커밋 메시지 편집, 커밋 내용 변경 처음으로 커밋 한 경우 등

아직 푸시하지 않았고 여전히 비공개 인 경우이 방법으로 기록을 다시 쓸 수 있습니다. 소설을 출판하기 전에 편집하는 것과 같아서 더 이해하기 쉽고 읽고 읽기가 쉬우 며 오류도 적습니다. 예를 들어 오류를 수정해야하지만, 아직 게시되지 않은 경우을 수정 한 경우 독자는 을 알 필요가 없습니다.)

0

커밋 2가 커밋 1 위에 만들어졌습니다. 이는 종속성을 가질 수 있음을 의미합니다. Bar 기고가가 Foo mergebase 위에 commit2를 리베이스하고 독립 풀 요청으로 다시 제출하면 git cherry-pick <commit2> 또는 그 이상을 사용할 수 있습니다.

+0

나는 조금 더 파고 들었고, 비슷한 포스트가 있습니다 : http://stackoverflow.com/a/1405189/786675, 그게 당신이 말하는거야? – the1plummie

관련 문제