Cómo eliminar el origen del repositorio git

280

Pregunta básica: ¿Cómo desasocio un repositorio git del origen del que fue clonado?

git branch -a muestra:

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

y quiero eliminar todo el conocimiento de origen y las revisiones asociadas.

Pregunta más larga: quiero tomar un repositorio de subversión existente y hacer una serie de repositorios git más pequeños a partir de él. Cada uno de los nuevos repositorios git debe tener el historial completo de solo la rama relevante. Puedo podar el repositorio solo para el subárbol deseado usando:

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

pero el repositorio resultante aún contiene todas las revisiones de los subárboles ahora descartados bajo la rama origen / maestro.

Me doy cuenta de que podría usar el indicador -T para git-svn para clonar el subárbol relevante del repositorio de subversión en primer lugar. No estoy seguro de si eso sería más eficiente que luego ejecutar múltiples instancias de git filter-branch --subdirectory-filtercopias del repositorio de git, pero, en cualquier caso, todavía me gustaría romper el enlace con el origen.

horrible
fuente

Respuestas:

476

Bastante sencillo:

git remote rm origin

En cuanto a la filter-branchpregunta, simplemente agregue --prune-emptya su comando de rama de filtro y eliminará cualquier revisión que en realidad no contenga ningún cambio en su repositorio resultante:

git filter-branch --prune-empty --subdirectory-filter path/to/subtree HEAD
Ámbar
fuente
1
Gracias. Era lo --prune-emptyque me faltaba.
horrible
2
Hmm conseguirerror: Could not remove config section 'remote.origin'
Dima Lituiev
5

Elimine el origen existente y agregue un nuevo origen al directorio de su proyecto

>$ 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
fuente