¿Cómo elimino el seguimiento de versiones de un proyecto clonado de git?

685

Quiero eliminar todo el seguimiento de versiones del directorio de un proyecto.

¿Cuál es el método correcto para hacer esto?

¿Puedo hacer un comando de shell como:

rm -rf .git

desde mi directorio de proyectos o ¿hay alguna manera de hacer esto como un comando Git?

Utilicé este proyecto para aprender Git y darme cuenta de que cometí algunos errores al principio del proyecto con archivos movidos, renombrados y eliminados. Me gustaría eliminar todo el seguimiento de Git y comenzar de cero git init.

daustin777
fuente
1
Considere git-archive .
Martin v. Löwis
2
Dependiendo de cuán graves fueron los errores, es posible que desee hacer una nueva versión interactiva de todo y simplemente juntar una tonelada de confirmaciones desde el principio, pero guardar una buena historia más reciente.
Cascabel
66
para usuarios de Windows:rd /s /q .git
Soorena

Respuestas:

686

Todos los datos que Git usa para la información se almacenan .git/, por lo que eliminarlos debería funcionar bien. Por supuesto, asegúrese de que su copia de trabajo esté en el estado exacto que desea, porque todo lo demás se perderá. .gitla carpeta está oculta, así que asegúrese de activar la Show hidden files, folders and disksopción.

A partir de ahí, puede ejecutar git initpara crear un nuevo repositorio.

bobDevil
fuente
1
Estoy seguro de que mis subcarpetas no tienen su propio directorio .git oculto, pero sigo teniendo el ícono atenuado al insertar esas carpetas en github ... ¿hay algo más que pueda probar?
Kokodoko
1
También hay .gitconfig, por lo que también debes eliminarlo.
Maximilian Mordig
considere 'code'git rm -r --cached your_folder / mi objetivo era convertir una carpeta git rastreada en una carpeta secundaria de otra carpeta git rastreada. El nuevo padre no reconocería al nuevo hijo hasta que elimine el caché de la carpeta secundaria.
Ryan Huebert
419

rm -rf .gitDebería ser suficiente. Eso eliminará toda la información relacionada con Git.

Lily Ballard
fuente
1
Si obtiene algunos cannot unlink Permission denieden Windows, puede matar el explorerproceso en el administrador de tareas, volver a ejecutar rm -rf .gity volver a abrir el explorador después de eso. ¡esto funciona para mi!
Michael
10
Si tiene Git Bashen Windows, también funcionará.
Viral
1
que -rfsignifica
nilon
13
-rsignifica "recursivo", por lo que eliminará todo el contenido de la carpeta en lugar de generar errores porque la carpeta no está vacía, y -fno le preguntará si está realmente seguro de eliminar cosas.
Lily Ballard
1
@Lucky_girl Eliminará todo el estado de Git de tu pago. Sin ramas, sin historia, sin controles remotos, nada en absoluto. Todo eso se almacena en el .gitdirectorio. Sin él, literalmente ya no tienes un repositorio git.
Lily Ballard
96

Además de los pasos a continuación, es posible que también desee eliminar el archivo .gitignore.

  • Considere eliminar el archivo .gitignore si desea eliminar cualquier rastro de Git en su proyecto.

  • ** Considere dejar el archivo .gitignore si alguna vez desea reincorporar a Git al proyecto.

Algunos marcos pueden producir automáticamente el archivo .gitignore, por lo que es posible que desee dejarlo.


Sistemas operativos basados ​​en Linux, Mac o Unix

Abra una terminal y navegue al directorio de su proyecto, es decir, - cd path_to_your_project.

Ejecute este comando:

rm -rf .git*

Esto eliminará el seguimiento de Git y los metadatos de su proyecto. Si desea conservar los metadatos (como .gitignore y .gitkeep), puede eliminar solo el seguimiento ejecutando rm -rf .git.


Ventanas

Usando el símbolo del sistema

El comando rmdirord no eliminará / eliminará ningún archivo o carpeta oculto dentro del directorio que especifique, por lo que debe usar el delcomando para asegurarse de que todos los archivos se eliminen de la .gitcarpeta.

  1. Abra el símbolo del sistema

    1. Haga clic en Startentonces Runo presione la Clave de Windowstecla y ral mismo tiempo.

    2. Escriba cmdy presione enter

  2. Navegue al directorio del proyecto, es decir: cd path_to_your_project

  1. Ejecute estos comandos

    1. del /F /S /Q /A .git

    2. rmdir .git

El primer comando elimina todos los archivos y carpetas dentro de la .gitcarpeta. El segundo elimina la .gitcarpeta en sí.

Sin símbolo del sistema

  1. Abra el explorador de archivos y navegue hasta su proyecto.

  2. Mostrar archivos y carpetas ocultos: consulte este artículo para obtener una guía visual

    1. En el menú de vista en la barra de herramientas, seleccione Options

    2. En la Advanced Settingssección, busque Hidden files and Foldersdebajo de la Files and Folderslista y seleccioneShow hidden files and folders

  3. Cierre el menú de opciones y debería ver todas las carpetas y archivos ocultos, incluida la .gitcarpeta.

    Eliminar la .gitcarpeta Eliminar el .gitignorearchivo ** (ver nota en la parte superior de esta respuesta)

Matt C
fuente
1
rmdir .gitno funciona porque hay carpetas debajo de él.
Dale
Dale, mira la línea debajo rmdir .git. Explica que el comando anterior rmdir .gitse usa para eliminar todos los archivos y carpetas dentro de la carpeta .git, antes de que el rmdircomando elimine la carpeta misma.
Matt C
1
bien podría hacerlo rd /s /q .git, lo que volará la carpeta y todo lo que
contiene
Para Windows, rmdir /S .githice el trabajo. Gracias por esto.
Eder Luis Jorge
70

No es una opción inteligente mover todo .git*a mano, especialmente cuando estos .gitarchivos están ocultos en subcarpetas como mi condición: cuando instalé Skeleton Zend 2 por composer + git, hay una gran cantidad de .gitarchivos creados en carpetas y sub- carpetas. carpetas

Intenté rm -rf .giten mi shell GitHub, pero el shell no puede reconocer el parámetro -rfde Remove-Item.

www.montanaflynn.me presenta el siguiente comando de shell para eliminar todos los .gitarchivos una vez, de forma recursiva. ¡Realmente está funcionando!

find . | grep "\.git/" | xargs rm -rf
John Yin
fuente
55
"Intenté 'rm -rf .git' en mi shell de Github, pero el shell no puede reconocer el parámetro '-rf' de Remove-Item". - rmEso es porque es un alias de PowerShell para remove-item. Y -rfes * nix rmargumentos de shell . Para PowerShell, use rm -recursive -forceen su lugar.
KFL
14
¡PELIGROSO! grep .git¡emparejaría archivos como legit.gifo anithing con "git" en el medio del nombre del archivo! ¡Elimina o edita la respuesta!
pamatt
44
Actualice para que coincida solo en los directorios de git: find. El | grep "\ .git /"
Andrew
3
Todavía no es lo suficientemente seguro: esto capturará archivos y directorios que terminan con .git. Debería ser grep "^\.git/"; aún mejor (y más rápido) sería filtrar por su nombre en findla invocación: find . -name .git.
pvgoran
Ejecute los siguientes comandos: find -name .git | xargs rm -rfy find -name .gitignore | xargs rm -rf.
Desarrollador Marius Žilėnas
14

Estoy trabajando con un entorno Linux. Eliminé todos los archivos y carpetas de Git de forma recursiva:

rm -rf .git

rm -rf .gitkeep
Nitya Kumar
fuente
9

En un entorno Windows, puede eliminar el seguimiento de Git del directorio de un proyecto simplemente escribiendo lo siguiente.

rd .git /S/Q
Rukshan Dangalla
fuente
7

Desde la carpeta raíz ejecutar

find . | grep .git

Revise las coincidencias y confirme que solo contenga los archivos que desea eliminar y ajústelos. Una vez satisfecho, corre

find . | grep .git | xargs rm -rf

Kamesh Jungi
fuente
5

La forma más fácil de resolver este problema es usar una línea de comando. Escriba este comando y rm -R .git/luego Intro ... O rm -rf .git/presione Intro ...

Emeka Augustine
fuente
2

Usuario del símbolo del sistema de Windows (cmd):

Puede eliminar '.git' de forma recursiva dentro de la carpeta del proyecto fuente utilizando un comando de línea única.

FOR /F "tokens=*" %G IN ('DIR /B /AD /S *.git*') DO RMDIR /S /Q "%G"
SridharKritha
fuente