2012-02-10 5 views
184

기본 질문 : 복제 된 원점에서 git repo를 어떻게 분리합니까?git 저장소에서 원점을 제거하는 방법

git branch -a 쇼 :

* master 
    remotes/origin/HEAD -> origin/master 

나는 기원의 모든 지식을 제거하려면, 및 관련 수정.

더 긴 질문 : 나는 기존의 Subversion repo를 가져 와서 더 작은 git repos를 만들고 싶다. 새로운 git repos에는 관련 브랜치의 전체 히스토리가 있어야합니다. 내가 사용하는 단지 원하는 하위 트리에 REPO를 가지 치기 할 수 있습니다

git filter-branch --subdirectory-filter path/to/subtree HEAD 

있지만 결과의 repo는 여전히 원산지/마스터 지점에서 지금은 폐기 된 하위 트리의 모든 버전이 포함되어 있습니다.

처음에는 Subversion repo의 관련 하위 트리를 복제하기 위해 git-svn에 -T 플래그를 사용할 수 있다는 것을 알고 있습니다. 그게 나중에 더 많은 효율적인 인스턴스를 git filter-branch --subdirectory-filter git repo의 복사본을 실행하는 것보다 확실하지 않다면, 어떤 경우에, 나는 여전히 원점과의 연결을 끊고 싶습니다.

답변

311

매우 간단합니다 :

git remote rm origin 
filter-branch 질문에 관해서는

- 당신의 필터 지점 명령에 --prune-empty을 추가하고 실제로 결과의 repo에 변경 사항을 포함하지 않는 버전을 제거 할 수 있습니다 :

git filter-branch --prune-empty --subdirectory-filter path/to/subtree HEAD 
+1

감사합니다. 제가 놓친'--prune-empty'입니다. – awy

+2

흠. '오류 : 구성 섹션을 제거 할 수 없습니다'라는 오류가 발생했습니다. 'remote.origin'' –

관련 문제