2010-04-19 1 views
1

두 개의 브랜치 (masteramazing_new_feature)가있는 git 저장소가 있습니다. 후자의 지부에는 놀라운 새로운 기능에 대한 작업이 포함되어 있습니다. 동료와 저 모두 같은 저장소에서 작업하고 있으며, 우리 둘은 양쪽 지점을 사용합니다.게시 된 git 브랜치의 히스토리를 여러 단계로 재 작성하려면 어떻게해야합니까?

놀라운 새로운 기능에 대한 작업이 끝났으며, amazing_new_feature 분기에는 100 개가 넘는 커밋이 축적되었습니다. 작업을 마스터로 병합하기 전에 해당 커밋을 약간 정리 (git rebase -i 사용)하고 싶습니다.

우리가 직면 한 문제는 한 번에 100 개의 모든 커밋을 다시 작성하거나 순서를 바꾸는 것입니다. 대신, 내가 뭘하려는 있습니다 :

  1. 재 작성이// 병합 amazing_new_feature 분기 처음 몇 커밋 순서를 변경하고 '정리'역사를 포함하는 전용 지점에 결과를 넣어 (예를 들어, A는 amazing_new_feature_ready_for_merge).
  2. 나머지 amazing_new_feature 브랜치를 amazing_new_feature_ready_for_merge 브랜치에 다시베이스하십시오. 1.

내 생각에

  • 반복 어떤 시점에서, amazing_new_feature에서 모든 작업이 amazing_new_feature_ready_for_merge에 있어야하고 내가 master로 후자를 병합 할 수 있다는 것입니다.

    이 방법이 현명한 접근인가요? 아니면이 문제에 대한 더 나은/더 쉽고/더 바보 같은 해결책이 있습니까? 나는 게시 된 브랜치를 리베이스하는 것을 의미하기 때문에 특히 상기 알고리즘의 두 번째 단계에 대해 두려워한다. IIRC 그것은 위험한 일입니다.

  • 답변

    0

    게시 된 git 브랜치의 기록을 어떻게 다시 쓸 수 있습니까?

    일반적으로 해당 분기가 널리 배포 된 경우에는 사용자 지정할 수 없습니다.
    브랜치를 당기거나 푸시하는 개발자가 2 명인 경우 개발자가 수정 한 다음 다른 개발자가 방금 가져온 원격 브랜치를 참조하도록 자신의 로컬 브랜치를 재설정 할 수 있습니다 (이 SO answer처럼).

    이 경우 (제한된 배포), 질문에 설명하는 단계는 건전합니다.