2016-08-18 4 views
1

나는 몇 시간 동안 Visual Studio에서 작업했습니다 프로젝트를, 그리고 Git 저장소 내 변경 사항을 저장하고. 의는 구분이 개 망할 놈의 저장소 함께

A0-A1-A2-A3-A4-A5-A6 

나중에 내가 다른 Git 저장소에있는 다른 프로젝트 프로젝트 B, 작업을 시작 커밋 다음과 같은 역사를 가지고이 프로젝트를 부르 자.
B0-B1-B2-B3 

는 어떤 점에서 나는이 두 프로젝트는 정말 서로 직접 관련이 결정 나는 프로젝트 저장소에 프로젝트 B를 병합하고 프로젝트 비주얼 스튜디오 솔루션에 추가합니다. Project A repo에는 이제 두 개의 루트 커밋 A0과 B0이 있습니다.

A0-A1-A2-A3-A4-A5-A6-M1 
        /
     B0-B1-B2-B3- 

이 시점 이후로 나는이 프로젝트가 하나라고 가정하고 독립적 인 프로젝트 A와 프로젝트 B 분기로 작업을 분리하지 않습니다. 나는 A와 B

A0-A1-A2-A3-A4-A5-A6-M1-AB1-A7-B4-B5-AB2-B6-A8-A9 
        /
     B0-B1-B2-B3- 

하지만 지금 내가이 프로젝트를 병합 잘못 결정했습니다 모두로 변경 만든 어떤 커밋이 있지만 커밋의 대부분은 프로젝트 A 나 프로젝트 B. 하나에 관련되어 두 프로젝트의 역사를 각각의 git 저장소로 분리하려고합니다.

A0-A1-A2-A3-A4-A5-A6-A7-A8-A9 

B0-B1-B2-B3-B4-B5-B6 

이 두 프로젝트는 모두 제가 작업 한 개인 프로젝트입니다. 따라서 모든 커밋을 리베이스/재 작성하는 것은 문제가되지 않습니다. 나는 SO와 다른 곳의 많은 글을 웹에서 읽었지만, 여전히 이것을 분할하는 것이 최선이라는 것을 알아낼 수는 없다. git rebase의 일이다

답변

0

:

git clone current_repos new_repos_only_a ; cd new_repos_only_a 
git rebase -i A6 
# skip all B commits, pick all A commits, do not pick the merge commit (should be skipped by git automatically) 

(별도의 새 저장소에서, 물론 B에 대한 동일).