2017-10-05 2 views
0

현재 다른 프로세스 (많은 수정과 많은 시간이 필요함) 로의 분기는 git rebase입니다. 프로덕션 (다른 분기)에서 핫픽스를 수행해야합니다.우리는 진행중인 git rebase를 "숨기"수 있습니까?

할 수있는 방법이 있나요 :이 버전이 과정에서 수행하는 모든 작업을 잃지 않고

  1. 체크 아웃이 생산 지점은?
  2. 프로덕션 지점에서 작업 수행 + 커밋
  3. rebase 프로세스로 다시 돌아가서 완료 하시겠습니까?
+0

이렇게하는 방법은 기본 제공되지 않습니다. '.git/rebase-apply'와'.git/ORIG_HEAD'와 다른 내부 파일을 수동으로 백업 한 다음, 다른 브랜치에서 작동하도록 rebase를 중단 한 다음 백업 한 파일을 다시 제 위치에 놓아야합니다. repo를 복제하고 복제본에서 핫픽스를 수행하거나 rebase를 중단하기 전에 전체 repo를 백업하는 것이 더 쉽습니다. –

+0

나는 그것이 내가 준 답을 추측한다. 감사. – samb

답변

1

프로젝트를 그대로두고 다른 폴더에 git clone을 보냈습니다. 코드를 작성하고 핫픽스를 해당 새 폴더의 프로덕션 분기에 커밋하고 준비가되면 원래 프로젝트 폴더로 다시 푸시합니다.

+0

비 베어 저장소에 푸시 할 때 몇 가지주의 사항이 있습니다 (예 : https://stackoverflow.com/q/1764380/279627 –

0

짧은 대답은 아니오입니다. 색인, HEAD 및 진행중인 rebase 정보와 같은 일부 항목은 작업 트리에 저장되거나 작업 트리와 연관됩니다.

나만의 답변으로 제안했듯이 새로운 복제본을 만들 수 있습니다. 또는 Git 버전 2.6 이상에서는 git worktree add을 사용하십시오. (git worktree 기능은 2.5 버전에 포함되어 있지만 수정 사항이 조금씩 나오고 최신 버전의 Git 버전에서 가장 잘 작동합니다.)

은 기존 저장소. 이는 기본 복제본 .git이 직접 공유된다는 점을 제외하고는 새 복제본 작성과 유사합니다. 각 추가 작업 트리 자체 별도의 인덱스, 그래서 대신 작업 트리 인덱스가, 당신은 지금 인덱스 작업 트리 당합니다. 대신HEAD 대신 작업 트리 당 HEAD 등이 있습니다.

git worktree add에는 하나의 제한 사항이 있습니다. 각 작업 트리는 별도의 분기에 있어야합니다. 따라서 리베이스 작업을 진행하는 주 작업 트리가 지점 develop에있는 경우 추가 작업 트리는 지점 develop에있을 수 없습니다. 원하는 경우 또는 필요하면 별도의 복제본을 사용하십시오. (실제로는 이 필요하지만 이에 대한 자세한 내용은 까다로울 수 있습니다.)