다른 지점에서 분기 된 분기를 리베이스하는 방법

데이비드 정

한동안 마스터에서 분기 된 release라는 분기가 있습니다. 이제 오늘은 basedMaster라는 마스터를 기반으로하는 브랜치와 basedRelease라는 릴리스를 기반으로하는 다른 브랜치가 있습니다. 최근에 10 개 이상의 커밋을 마스터로 변경했습니다. 나는 당신이 cherry-pick그 커밋 을 할 수 있다는 것을 알고 있지만 그 10 개 이상의 커밋을 basedRelease 브랜치에 리베이스하는 방법을 찾고 싶습니다. 나는 basedMaster의 커밋이 10 개 이상인 커밋이 정확히 내가 원하는 것이라고 가정하고 있습니다. 나는 시도했다rebasing그러나 그것은 내가 원했던 것이 아닌 다른 개발자의 커밋을 잡을 것입니다. 그런 다음 basedMaster에서 basedMasterLocal이라는 다른 브랜치를 소싱했습니다.이 브랜치 basedRelease에 내가 만든 10 개의 커밋 만 전달할 것이라고 생각했습니다. 그러나 나는 사용 cherry-pick하고 싶지 않아 이것을 어떻게하는지 알아내는 데 어려움을 겪었고 이것을 사용하여 해결하고 싶습니다.rebase

무거운

이것을 그려 봅시다.

한동안 마스터에서 분기 된 release라는 분기가 있습니다.

A - B - C - F - G [master]
         \
          D - E [release]

이제 오늘은 basedMaster라는 마스터를 기반으로하는 브랜치와 basedRelease라는 릴리스를 기반으로하는 다른 브랜치가 있습니다.

나는 당신이 그 분기에 몇 가지 커밋을 추가했다고 가정합니다. 그렇지 않으면 관련이 없습니다.

                  H - I [basedMaster]
                 /
A - B - C - F - G [master]
         \
          D - E [release]
               \
                J - K [basedRelease]

최근에 10 개 이상의 커밋을 마스터로 변경했습니다.

두 개를 만들어 봅시다.

                  H - I [basedMaster]
                 /
A - B - C - F - G - L - M [master]
         \
          D - E [release]
               \
                J - K [basedRelease]

그래서 basedMaster에서 basedMasterLocal이라는 다른 브랜치를 소싱했습니다.

                        [basedMasterLocal]
                  H - I [basedMaster]
                 /
A - B - C - F - G - L - M [master]
         \
          D - E [release]
               \
                J - K [basedRelease]

이것으로 우리는 저장소의 상태에 대해 더 잘 알 수 있습니다.

그 10 개 이상의 커밋을 basedRelease 브랜치에 리베이스하는 방법을 찾고 싶습니다.

master에 있지만에는없는 모든 커밋을 원하는지 basedRelease, 아니면 특별히 언급 한 10 개 이상의 커밋을 원하는지 확실하지 않습니다 . 당신이 원한다면 그리고 그것은 불분명 복사 를 ( cherry-pick) 또는 이동 (그들을 rebase).

나는 cherry-pick을 사용하지 않고 rebase를 사용하여 이것을 해결하고 싶기 때문에 이것을 수행하는 방법을 알아내는 데 어려움을 겪었습니다.

어느 쪽이든 여러 커밋을 선택할 수 있습니다. 다양한 커밋이 필요합니다. 우리가 사용할 수있는 ..x..y수단 "X에서 접근하는 제외 Y에서 연결할 수있는 모든 커밋". 자세한 내용은 gitrevisions / 범위 지정을 참조하십시오 .

당신이 한 가정 basedRelease이있는 모든 커밋 (체리 픽)을 복사하려면 ... 체크 아웃 master하지만에 basedRelease.

# All the commits reachable from master
# excluding those reachable from HEAD (the currently checked out commit).
git cherry-pick HEAD..master

10 개 이상의 커밋 만있는 경우 해당 10 개 커밋의 철자를 입력 할 수 있습니다. 이 예에서는 L과 M 두 개입니다.

git cherry-pick L M

또는 이것들이에 master있지만에 있지 않은 커밋임을 관찰 할 수 있습니다 basedMaster.

git cherry-pick basedMaster..master

그리고 이동 (리베이스)하려면.

git rebase --onto basedRelease basedMaster..master

비슷한 사례가있다 예 자식 - 체리 - 선택자식 - REBASE이 설명에 유사한 예제가 실려있다 .


장수 브랜치 사이의 이런 종류의 복잡한 스와핑 커밋은 여러 장수 브랜치를 사용하지 말라고 권장하는 이유 중 하나입니다. 동기화를 유지하는 것은 매우 복잡합니다.

대신 오래 살았던 단일 분기를 갖는 것이 좋습니다 master.. 에 직접 약속 된 것은 없습니다 master. 모든 작업은 수명이 짧은 기능 분기에서 수행됩니다. 에 병합되기 전에 품질 보증을 통과해야합니다 master. 병합되면 삭제됩니다. 이 방법 master은 항상 안정적이고 출시 준비가되어 있습니다. 릴리스는 태그로 추적됩니다. 이것이 기능 분기 워크 플로 입니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

분기를 삭제하지 않고 분기를 다른 분기의베이스로 재설정하는 방법

분류에서Dev

git kraken에서 분기를 리베이스하는 방법

분류에서Dev

Git에서 한 분기를 다른 분기로 복사하는 방법

분류에서Dev

git에서 다른 분기처럼 분기를 만드는 방법

분류에서Dev

대화식 리베이스 후 git에서 분기를 다시 연결하는 방법

분류에서Dev

GITLAB : ENTIRE 분기를 다른 분기로 푸시하는 방법

분류에서Dev

단위 테스트에서 누락 된 분기를 처리하는 방법

분류에서Dev

동적으로 추가 된 부분보기 데이터를 데이터베이스에 저장하는 방법

분류에서Dev

다른 분기에서 파일을 체크 아웃 한 다음 현재 분기를 덮어 쓰는 방법

분류에서Dev

작성자가 누락 된 모든 커밋을 한 분기에서 다른 분기로 체리 픽하는 좋은 방법은 무엇입니까?

분류에서Dev

지정된 구분 기호에서 파일 이름을 분할하는 방법

분류에서Dev

분기 된 분기를 병합하는 방법

분류에서Dev

다른 분기를 건드리지 않고 분기에서 작업하는 phpstorm

분류에서Dev

ODBC를 통해 데이터베이스에 연결된 R에서 이전 쿼리를 취소하지 않고 다른 쿼리를 보내기 위해 한 쿼리를 실행 한 후 연결을 끊는 방법은 무엇입니까?

분류에서Dev

분기 된 git 로컬 저장소 분기를 업스트림에 존재하는 것과 일치하거나 정리하는 방법이 있습니까?

분류에서Dev

R : 다른 날짜를 기준으로 데이터베이스에서 여러 번 쿼리하는 방법

분류에서Dev

분기 지점에서 충돌없이 git push하는 방법

분류에서Dev

Git이 잘못된 원격 분기에서 분기를 생성했습니다.

분류에서Dev

Heroku에서 분기 된 github 저장소를 업데이트하는 방법

분류에서Dev

user_id로 분할 된 다른 열 값을 기준으로 행의 차이를 계산하는 방법

분류에서Dev

SVNKit을 사용하여 한 분기에서 다른 분기로 병합 된 모든 개정 목록을 가져 오는 방법은 무엇입니까?

분류에서Dev

빠른 액세스에서 삭제 된 폴더를 분리하는 방법

분류에서Dev

구분 기호가 누락 된 (또는-추가 구분 기호가있는) Pandas에서 CSV를 읽는 방법

분류에서Dev

크론 일정에 의해 다중 분기 작업이 트리거 된시기를 식별하는 방법은 무엇입니까?

분류에서Dev

데이터베이스에서 기록 된 사용자 user_id를 가져 와서 다른 테이블에 삽입하는 방법은 무엇입니까?

분류에서Dev

GitHub에서 여러 리포지토리가 지정된 분기간에 차이점이 있는지 한 눈에 보는 방법은 무엇입니까?

분류에서Dev

Keras로 다중 클래스 이미지 분류기를 훈련하는 방법

분류에서Dev

코드 점화기에서보기 위해 데이터베이스에서 파열 된 이미지 경로를 검색하는 방법

분류에서Dev

한 분기에서 다른 분기로 일부 개정을 이동하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    분기를 삭제하지 않고 분기를 다른 분기의베이스로 재설정하는 방법

  2. 2

    git kraken에서 분기를 리베이스하는 방법

  3. 3

    Git에서 한 분기를 다른 분기로 복사하는 방법

  4. 4

    git에서 다른 분기처럼 분기를 만드는 방법

  5. 5

    대화식 리베이스 후 git에서 분기를 다시 연결하는 방법

  6. 6

    GITLAB : ENTIRE 분기를 다른 분기로 푸시하는 방법

  7. 7

    단위 테스트에서 누락 된 분기를 처리하는 방법

  8. 8

    동적으로 추가 된 부분보기 데이터를 데이터베이스에 저장하는 방법

  9. 9

    다른 분기에서 파일을 체크 아웃 한 다음 현재 분기를 덮어 쓰는 방법

  10. 10

    작성자가 누락 된 모든 커밋을 한 분기에서 다른 분기로 체리 픽하는 좋은 방법은 무엇입니까?

  11. 11

    지정된 구분 기호에서 파일 이름을 분할하는 방법

  12. 12

    분기 된 분기를 병합하는 방법

  13. 13

    다른 분기를 건드리지 않고 분기에서 작업하는 phpstorm

  14. 14

    ODBC를 통해 데이터베이스에 연결된 R에서 이전 쿼리를 취소하지 않고 다른 쿼리를 보내기 위해 한 쿼리를 실행 한 후 연결을 끊는 방법은 무엇입니까?

  15. 15

    분기 된 git 로컬 저장소 분기를 업스트림에 존재하는 것과 일치하거나 정리하는 방법이 있습니까?

  16. 16

    R : 다른 날짜를 기준으로 데이터베이스에서 여러 번 쿼리하는 방법

  17. 17

    분기 지점에서 충돌없이 git push하는 방법

  18. 18

    Git이 잘못된 원격 분기에서 분기를 생성했습니다.

  19. 19

    Heroku에서 분기 된 github 저장소를 업데이트하는 방법

  20. 20

    user_id로 분할 된 다른 열 값을 기준으로 행의 차이를 계산하는 방법

  21. 21

    SVNKit을 사용하여 한 분기에서 다른 분기로 병합 된 모든 개정 목록을 가져 오는 방법은 무엇입니까?

  22. 22

    빠른 액세스에서 삭제 된 폴더를 분리하는 방법

  23. 23

    구분 기호가 누락 된 (또는-추가 구분 기호가있는) Pandas에서 CSV를 읽는 방법

  24. 24

    크론 일정에 의해 다중 분기 작업이 트리거 된시기를 식별하는 방법은 무엇입니까?

  25. 25

    데이터베이스에서 기록 된 사용자 user_id를 가져 와서 다른 테이블에 삽입하는 방법은 무엇입니까?

  26. 26

    GitHub에서 여러 리포지토리가 지정된 분기간에 차이점이 있는지 한 눈에 보는 방법은 무엇입니까?

  27. 27

    Keras로 다중 클래스 이미지 분류기를 훈련하는 방법

  28. 28

    코드 점화기에서보기 위해 데이터베이스에서 파열 된 이미지 경로를 검색하는 방법

  29. 29

    한 분기에서 다른 분기로 일부 개정을 이동하는 방법은 무엇입니까?

뜨겁다태그

보관