2017-01-02 3 views
4

빛을 찾고 상당히 비슷한 질문을 한 후에도 그 중 누구도 내 질문에 대한 답을 얻지 못했습니다 (내가 찾은 관련 질문 목록 아래).Gerrit : 최상위 커밋을 동일한 분기로 푸시하는 방법이 있습니까?

아직 검토되지 않은 커밋의 맨 위에 추가 변경 사항을 개발 중이지만 변경 사항을 별도로 유지하려고합니다.

! [remote rejected] HEAD -> refs/for/master (no changes made) 

시나리오 : 검토를 위해 새로운 패치를 밀어하려고 할 때, 나는 오류 얻을 내 지점에서 는 내가 가진 A (병합)을 커밋 <를 - B (벚꽃 고른/병합) 커밋 < - C를 커밋합니다 (최근 변경 사항을 적용하려고 함). (이 C 존재 아직 ​​변경을 추가로 옵션이 아니지만 내가 그들을 분리 원하는대로, 스쿼시는 또한 B를 제거. 할 수 없습니다)

언급 한 바와 같이

, C는 B의 의존 커밋합니다.

그래서 리뷰를 위해 C 커밋을 푸시하려고하면 위의 오류 메시지가 표시됩니다 (커밋 B가 새 커밋 C보다 낮아서 발생합니다).

내 질문은 : 병합되기 전에, 리트에 C에게까지 커밋 B를 커밋 보낼 수있는 방법은 무엇입니까? 아니면 커밋 C를 보낼 수 있도록 B가 병합 될 때까지 기다려야합니까?

숙제 :

Gerrit workflow - push single commit to topic branch

Git/gerrit, push remote rejected no changes made

Is there a way to force Gerrit to have all commits in a branch be push to code review?

git - pushing only the top most commit to server

답변

3

예, '당신은 병합 커밋-B를 기반으로 커밋-C를 밀어 수 있지만 당신은 할 수 체리 - 왜냐하면 그런 식으로 커밋 -B를 기반으로 커밋 -C를 얻습니다. (원래 커밋 -B와 비교할 때 변경 사항이없는 다른 커밋.// 변경/X/Y

자식 https://[email protected]/a/REPO-PATH/REPO-NAME 심판을 가져 오기 :

  1. 체크 아웃 병합되지 않은 커밋-B (리트> 변경> 다운로드> 체크 아웃에서이 명령을 복사) :

    이 절차를보십시오 Z & & 자식 체크 아웃 FETCH_HEAD

  2. 것은에서 지점을 만들기 커밋-B

  3. 만들기 커밋-C의 변화, 커밋 내가 리트는 이전 변경에서 커밋-B를 기반으로 커밋-C와 변화를 만들 생각 리트

에 밀어 몇 분기 -b자식 체크 아웃 . 누군가가 원래의 커밋 -B를 변경하면, 병합되기 전에 커밋 -C를 리베이스해야 할 필요가 있다는 것을 알아 두십시오.

1

또 다른 옵션은 개발하는 동안 (B에서 별도의 변경 집합으로) 두 커밋을 하나로 결합하는 것일 수 있으며 B가 병합되면 마스터의 맨 위에 리버스하여 고유 한 변경.

관련 문제