Como remover a origem do repositório git

279

Pergunta básica: Como desassocio um repositório Git da origem da qual ele foi clonado?

git branch -a mostra:

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

e quero remover todo o conhecimento de origem e as revisões associadas.

Pergunta mais longa: Eu quero pegar um repositório de subversão existente e fazer vários repositórios git menores. Cada um dos novos repositórios git deve ter o histórico completo apenas do ramo relevante. Posso podar o repositório apenas para a subárvore desejada usando:

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

mas o repositório resultante ainda contém todas as revisões das subárvores agora descartadas na ramificação origem / mestre.

Percebo que eu poderia usar o sinalizador -T para git-svn para clonar a subárvore relevante do repositório do subversion em primeiro lugar. Não tenho certeza se isso seria mais eficiente do que executar várias instâncias posteriormente git filter-branch --subdirectory-filterem cópias do repositório git, mas, em qualquer caso, eu ainda gostaria de quebrar o vínculo com a origem.

awy
fonte

Respostas:

473

Bastante simples:

git remote rm origin

Quanto à filter-branchpergunta - basta adicionar --prune-emptyao seu comando branch branch do filtro e removerá qualquer revisão que não contenha nenhuma alteração no repo resultante:

git filter-branch --prune-empty --subdirectory-filter path/to/subtree HEAD
Âmbar
fonte
1
Obrigado. Era o --prune-emptyque eu estava perdendo.
awy
2
Hmm. recebendoerror: Could not remove config section 'remote.origin'
Dima Lituiev
5

Remova a origem existente e adicione uma nova origem ao diretório do projeto

>$ git remote show origin

>$ git remote rm origin

>$ git add .

>$ git commit -m "First commit"

>$ git remote add origin Copied_origin_url

>$ git remote show origin

>$ git push origin master
Mandeep Singh Gill
fonte