VS 2017 Git Local Commit DB.lock error en cada confirmación

200

Recibimos este error en cada confirmación local:

Git falló con un error fatal. Error: abierto (". Vs / XXXXXX.Dev.Library / v15 / Server / sqlite3 / db.lock"): Permiso denegado fatal: No se puede procesar la ruta .vs / XXXXXX.Dev.Library / v15 /Server/sqlite3/db.lock

Esta es una instalación completamente nueva de VS 2017 que usa el repositorio local de git antes de que pueda sincronizarse con Azure DevOps GIT.

Podemos eliminar manualmente el archivo de bloqueo y luego sincronizar bien, pero ralentiza seriamente el proceso de desarrollo (tener que cerrar , eliminar , abrir , confirmar cada vez).

¿Alguien sabe una mejor solución a largo plazo para este problema?

alex Reid
fuente
Si alguien más se encuentra con esto y agregar ".vs /" a .gitignore no parece funcionar, hacer que el archivo en PowerShell y luego editar con Notepad ++ deje el archivo con un tipo incorrecto de codificación de caracteres. Necesitaba abrirlo en VS Code y codificarlo como UTF8 simple y luego funcionó bien
Brian Leishman

Respuestas:

419

Simplemente agregue la carpeta .vs al archivo .gitignore .

Aquí está la plantilla para Visual Studio de la colección de plantillas .gitignore de GitHub, como un ejemplo:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


Si tiene problemas para agregar el archivo .gitignore, solo siga estos pasos:

  1. En la ventana del Team Explorer, vaya a Configuración.

Team Explorer - Configuración

  1. Luego acceda a la Configuración del repositorio.

Configuraciones de repositorio

  1. Finalmente, haga clic en Agregar en la sección Ignorar archivo.

ingrese la descripción de la imagen aquí

Hecho. ;)
Este archivo predeterminado ya incluye la carpeta .vs.

ingrese la descripción de la imagen aquí

Matheus Lacerda
fuente
3
Sí, ese es el mejor answare, solo puse "2017" en: # Visual Studio 2015/2017 directorio cache / options .vs /
harveyt
1
El problema es que, git clean -fxdentonces, se tuerce las bragas ... Necesito dejar VS antes de poder limpiar. Esto solo comenzó desde VS2017 y no sucedió en 2015
Peter McEvoy
44
Esto funcionó para mí también. Una respuesta perfecta a un mensaje de error engañoso.
Stanley Okpala Nwosa
@Matheus, después de hacer esto, el commit efectuado funcionó, pero Commit All and Push todavía muestra el mismo error. ¿Qué se puede hacer para que se comprometa y empuje?
Stanley Okpala Nwosa
Me funcionó, aunque hacer git en VS parece un poco mágico la mayor parte del tiempo. Intento sacar un conejo del sombrero, pero en su lugar consigo un chimpancé.
Roberto
63
  1. La carpeta .vs no debe confirmarse.
  2. cree un archivo con el nombre ".gitignore" dentro del directorio raíz de proyectos git.
  3. Agregue la siguiente línea ".vs /" en el archivo ".gitignore".
  4. Ahora compromete tu proyecto.

ingrese la descripción de la imagen aquí

Siddarth Kanted
fuente
Hola, a pesar de que este tipo de archivo está en el archivo gitignore, todavía recibo un error. Por favor ayuda.
user3820266
33

Paso 1:
Agregue .vs / a su archivo .gitignore (como se dijo en otras respuestas).

Paso 2:
es importante comprender que el paso 1 NO eliminará los archivos dentro de .vs / de su índice de rama actual, si ya se han agregado a él. Entonces borre su rama activa emitiendo:

git rm --cached -r .vs/*

Paso 3: es
mejor repetir de inmediato los pasos 1 y 2 para todas las demás ramas activas de su proyecto también.
De lo contrario, enfrentará fácilmente los mismos problemas nuevamente al cambiar a una rama sin limpiar.


Consejo profesional: en lugar del paso 1, puede utilizar esta plantilla oficial .gitingore para VisualStudio que cubre mucho más que la ruta .vs:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
(Pero aún así no olvide los pasos 2 y 3.)

Jpsy
fuente
.vs ha sido excluido en mi archivo .gitignore (.vs /) y el problema aún persiste. ¿Con qué más podría ser el problema?
Stanley Okpala Nwosa
1
Fue capaz de resolver ejecutando git rm --cached -r .vs / *. Gracias
Stanley Okpala Nwosa
5

VS 2017 Git Local Commit DB.lock error en cada confirmación

Este problema debe haber sido causado por un archivo corrupto .ignore.

Si su IDE es Visual Studio, siga estos pasos para resolver este problema:

  1. Elimine el archivo .gitignore de su carpeta de proyecto
  2. Ir a Team Explorer
  3. Ir a Inicio en Team Explorer
  4. Ir a la configuración
  5. En GIT, haga clic en Configuración del repositorio
  6. En - Ignorar y archivos de atributos - En Ignorar archivo - Haga clic en Agregar. Debería ver una notificación de que el archivo Ignorar se ha creado correctamente
  7. Crea tu solución. Tomará un poco de tiempo y creará un nuevo archivo .ignore una vez que la compilación sea exitosa
  8. Ahora debería poder comprometerse y presionar sin más problemas

NB: tenga en cuenta que su versión de Visual Studio puede colocar estas opciones de manera diferente. Estoy usando Visual Studio 2019 Community Edition.

Bernard Oreva
fuente
Trabajó para mi. ¡Gracias!
Chase Ernst
2

Tuve el mismo problema pero lo resolví creando el archivo .gitignore.

También he encontrado una solución alternativa que simplemente consiste en eliminar el archivo db.lock de la carpeta .vs, pero debe hacerlo cada vez y hacerlo durante mucho tiempo hace que esta sea una operación molesta.

La mejor manera de resolver este problema es crear el archivo .gitignore como se sugirió anteriormente, pero creo que es bueno mencionar también esta solución, ¡solo para fines de conocimiento general!

Saludos, Tony Grinton


fuente
0

No estoy usando Git directamente a través de Visual Studio sino que estoy usando el cliente Git Desktop.

Sin embargo, recibí un error similar, pero lo resolví cerrando Visual Studio antes de confirmar los cambios en el maestro.

Peter Horsbøll Møller
fuente
0

si está utilizando un IDE como Visual Studio y está abierto mientras envía comandos, cierre IDE e intente nuevamente

git add .

y otros comandos, entrenará

Hamit YILDIRIM
fuente
0

Para mí, los pasos a continuación ayudaron:

  • Cerrar Visual Studio 2019
  • Eliminar la carpeta .vs en el proyecto
  • Vuelva a abrir el proyecto, la carpeta .vs se crea automáticamente
  • Hecho
RAM
fuente
0

Mi .gitignorearchivo generado automáticamente contiene en /.vslugar de .vs/. ¡Arreglar este error tipográfico solucionó el problema!

Súper jade
fuente
0

ingrese la descripción de la imagen aquí

Para mí, estos dos archivos que he eliminado por error, después de deshacer estos dos archivos y agregarlos en mis cambios, pude confirmar mis cambios en git.

Jaydeep Shil
fuente
0

Tenía esto y mi .gitignore estaba dentro de mi carpeta de proyecto, pero las carpetas principales de git estaban en el nivel de solución. Mover .gitignore a las carpetas de nivel de solución / git funcionó. Todavía no estoy seguro de cómo llegó allí, pero ...

Joe Healy
fuente
-1

Intente copiar el archivo en su directorio manualmente (C: \ Users \ Admin \ AppData \ Local \ Temp \ WebSitePublish \ digisol - 1147805695 \ obj \ Debug \ Package \ PackageTmp.vs \ digisol \ v15 \ Server \ sqlite3)

RaviTeja V
fuente
-1

Había hecho las soluciones anteriores, finalmente esto funcionó resolvió mi problema:

  • Cierra el estudio visual

  • Ejecute git bash en la carpeta del proyecto

  • Escribir :

    git add.

    git commit -m "[tu comentario]"

    git push

Mostafa Hydarzadeh
fuente
-2

Resolver este problema es simple. Primero cierre, Visual Studio y abra el Explorador de Windows, vaya a la carpeta de ubicación .vs y abra las propiedades de la carpeta y marque la opción oculta

Wellington Matos
fuente