2012-11-29 2 views
2

그래서 우리는 마스터와 브랜치 X를 가지고 있고, 마스터와 함께 최신 상태이고 커밋이 더 있습니다.git rebasing 커밋 히스토리가 브랜치에 포함되지 않음

저는 역사를 바꾸어 마스터를 리베이스했습니다. 몇 가지 커밋을 스쿼시하고 다른 것을 다시 쓰십시오.

그런 다음 master를 사용하여 브랜치 X를 rebase하려고합니다. rewords가 브랜치 X에 들어오지 않는 것처럼 보입니다. 그들은 여전히 ​​오래된 커밋 메시지입니다. 어떻게 브랜치 Xs를 마스터와 일치하도록 커밋 할 수 있습니까?

(Btw, 스쿼시와 픽스 업 리베이스가 잘 어울린 것처럼 보입니다. 그냥 rewords로 보입니다).

+0

사용되었습니다. 당신이 주인을 rebased하는 방법부터, 당신이 X 지점을 만들었던 모든 방법에 이르기까지. 나는 최근에 주인을 퇴역시켜야했고 고통 스러울 수 있다고 믿습니다. – eddiemoya

답변

1

마스터를 리베이스 한 경우, 브랜치 -X는 master로 더 이상 최신 상태가 아닙니다. 이걸 알아내는 가장 쉬운 방법은 git cherry-pick을 사용하는 것입니다.

  1. 마스터에서 새로운 지점을 확인, 각 git checkout -b branch-Y master
  2. git cherry-pick <sha>는 분기-X에 git branch -f branch-X branch-Y; git checkout branch-X; git branch -D branch-Y
지점-X
  • 당신은 지점-X를 삭제하고 이름을 바꿀 수 있습니다 지사 Y에서 필요로하는 것을 저지

    광범위하게 사용하기 전에 rebase에 대한 자세한 내용을 읽어 보시기 바랍니다. Git rebase or merge

  • +0

    브랜치 X의 모든 커밋이 필요합니다. 제 문제는 브랜치 X를 마스터로 리베이스하면 마스터의 리 워드 된 커밋이 브랜치 X에서 적용되지 않는다는 것입니다. --merge 옵션은 이름이 바뀐 커밋의 메모이지만 작동하지 않는 것 같습니다. – user1658217

    관련 문제