2012-02-10 37 views
184

Pregunta básica: ¿Cómo puedo desasociar un repositorio git del origen desde el que se clonó?Cómo eliminar el origen del repositorio git

git branch -a espectáculos:

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

y quiero eliminar todo el conocimiento del origen, y las revisiones correspondientes.

Pregunta más larga: Quiero tomar un repositorio de subversión existente y hacer un número de repositorios git más pequeños. Cada uno de los nuevos repositorios git debe tener el historial completo de solo la rama relevante. Puedo podar el repositorio a sólo el subárbol deseado usando:

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

pero la cesión temporal resultante todavía contiene todas las revisiones de los subárboles ahora descartados-bajo la rama origin/master.

Me doy cuenta de que podría usar la bandera -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 ejecutar varias instancias de git filter-branch --subdirectory-filter en copias del repositorio de git pero, en cualquier caso, me gustaría romper el vínculo con el origen.

Respuesta

311

bastante sencillo:

git remote rm origin 

En cuanto a la cuestión filter-branch - sólo tiene que añadir --prune-empty a su comando de filtro sucursal y que va a eliminar cualquier revisión que en realidad no contiene ningún cambio en su cesión temporal resultante :

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

Gracias. Era el '--prune-empty' que me estaba perdiendo. – awy

+2

Hmm. obteniendo 'error: no se pudo eliminar la sección de configuración 'remote.origin'' –

Cuestiones relacionadas