VS 2017 Errore Git Local Commit DB.lock su ogni commit


200

Stiamo riscontrando questo errore su ogni commit locale:

Git non riuscito con errore fatale: errore (aperto (". Vs / XXXXXX.Dev.Library / v15 / Server / sqlite3 / db.lock"): autorizzazione negata: impossibile elaborare il percorso .vs / XXXXXX.Dev.Library / v15 /Server/sqlite3/db.lock

Questa è una nuovissima installazione di VS 2017 che usa il repository git locale prima che possa sincronizzarsi con Azure DevOps GIT.

Possiamo eliminare manualmente il file di blocco e quindi sincronizzarlo correttamente, ma rallenta seriamente il processo di sviluppo (dover chiudere , eliminare , aprire , eseguire il commit ogni volta).

Qualcuno conosce una migliore soluzione a lungo termine per questo problema?


Se qualcun altro si imbatte in questo e l'aggiunta di ".vs /" a .gitignore sembra non funzionare, rendere il file in PowerShell e quindi modificarlo con Notepad ++ ha lasciato il file con un tipo errato di codifica dei caratteri. Avevo bisogno di aprirlo in VS Code e codificarlo come semplice UTF8 e poi ha funzionato bene
Brian Leishman

Risposte:


419

Basta aggiungere la cartella .vs a .gitignore file .

Ecco il modello per Visual Studio dalla raccolta di modelli .gitignore di GitHub, ad esempio:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore


In caso di problemi con l'aggiunta del file .gitignore, attenersi alla seguente procedura:

  1. Nella finestra di Team Explorer, vai su Impostazioni.

Team Explorer - Impostazioni

  1. Quindi accedere alle impostazioni del repository.

Impostazioni del repository

  1. Infine, fai clic su Aggiungi nella sezione Ignora file.

inserisci qui la descrizione dell'immagine

Fatto. ;)
Questo file predefinito include già la cartella .vs.

inserisci qui la descrizione dell'immagine


3
Sì, questa è la migliore risposta, ho inserito solo "2017" in: # Visual Studio 2015/2017 directory cache / options .vs /
harveyt

1
Il guaio è che git clean -fxdfa girare le mutande in un attimo ... Devo uscire da VS prima di poter pulire. Questo è iniziato solo da VS2017 e non è avvenuto nel 2015
Peter McEvoy,

4
Questo ha funzionato anche per me. Una risposta perfetta a un messaggio di errore fuorviante.
Stanley Okpala Nwosa,

@Matheus, dopo aver eseguito questo commit messo in scena ha funzionato ma Commit All e Push mostrano ancora lo stesso errore. Cosa si potrebbe fare per farlo impegnare e spingere?
Stanley Okpala Nwosa,

Ha funzionato per me, anche se fare git in VS sembra un po 'magico per la maggior parte del tempo. Provo a tirare fuori un coniglio dal cappello ma invece prendo uno scimpanzé.
Roberto,

63
  1. La cartella .vs non deve essere impegnata.
  2. creare un file con il nome ".gitignore" all'interno della directory root del progetto git.
  3. Aggiungi la seguente riga ".vs /" nel file ".gitignore".
  4. Ora impegna il tuo progetto.

inserisci qui la descrizione dell'immagine


Ciao, nonostante questo tipo di file sia nel file gitignore, sto ancora ricevendo un errore. per favore aiutatemi.
user3820266

33

Passaggio 1:
aggiungi .vs / al tuo file .gitignore (come indicato nelle altre risposte).

Passaggio 2:
È importante capire che il passaggio 1 NON rimuoverà i file all'interno di .vs / dall'indice di diramazione corrente, se sono già stati aggiunti ad esso. Quindi cancella il tuo ramo attivo emettendo:

git rm --cached -r .vs/*

Passaggio 3: è
preferibile ripetere immediatamente i passaggi 1 e 2 anche per tutti gli altri rami attivi del progetto.
Altrimenti incontrerai di nuovo facilmente gli stessi problemi quando passi a un ramo non pulito.


Suggerimento professionale: invece del passaggio 1 potresti voler utilizzare questo modello .gitingore ufficiale per VisualStudio che copre molto più del semplice percorso .vs:
https://github.com/github/gitignore/blob/master/VisualStudio.gitignore
(Ma non dimenticare i passaggi 2 e 3.)


.vs è stato escluso nel mio file .gitignore (.vs /) e il problema persiste. Cos'altro potrebbe essere il problema?
Stanley Okpala Nwosa,

1
È stato in grado di risolvere eseguendo git rm --cached -r .vs / *. Grazie
Stanley Okpala Nwosa,

5

VS 2017 Errore Git Local Commit DB.lock su ogni commit

Questo problema deve essere stato causato da un file .ignore corrotto.

Se il tuo IDE è Visual Studio, segui questi passaggi per risolvere questo problema:

  1. Elimina il file .gitignore dalla cartella del tuo progetto
  2. Vai a Team Explorer
  3. Vai a Home in Team Explorer
  4. Vai alle impostazioni
  5. Sotto GIT, fai clic su Impostazioni repository
  6. Sotto - Ignora e Attributi File - Sotto Ignora file - Fai clic su Aggiungi. Dovresti visualizzare una notifica che il file Ignore è stato creato correttamente
  7. Crea la tua soluzione. Ci vorrà un po 'di tempo e creerà un nuovo file .ignore una volta che la compilazione avrà esito positivo
  8. Ora dovresti essere in grado di eseguire il commit e il push senza ulteriori problemi

NB: tieni presente che la tua versione di Visual Studio potrebbe posizionare queste opzioni in modo diverso. Sto usando Visual Studio 2019 Community Edition.


Ha funzionato per me. Grazie!
Chase Ernst,

2

Ho avuto lo stesso problema ma ho risolto creando il file .gitignore.

Ho anche trovato una soluzione alternativa che consiste semplicemente nella rimozione del file db.lock dalla cartella .vs ma devi farlo ogni volta e farlo a lungo rende questa operazione fastidiosa.

Il modo migliore per risolvere questo problema è creare il file .gitignore come suggerito prima, ma penso che sia utile menzionare anche questa soluzione alternativa, solo per scopi di conoscenza generale!

Saluti, Tony Grinton


0

Non sto usando Git direttamente tramite Visual Studio ma sto usando il client Git Desktop.

Tuttavia, ho riscontrato un errore simile, ma l'ho risolto chiudendo Visual Studio prima di apportare modifiche al master.


0

se si utilizza un IDE come Visual Studio ed è aperto durante l'invio di comandi, chiudere IDE e riprovare

git add .

e altri comandi, farà allenamento


0

Per me i passaggi seguenti hanno aiutato:

  • Chiudi Visual Studio 2019
  • Elimina la cartella .vs nel Progetto
  • Riaprire il progetto, la cartella .vs viene creata automaticamente
  • Fatto

0

Il mio .gitignorefile generato automaticamente conteneva /.vsinvece di .vs/. Risolvere questo errore di battitura ha risolto il problema!


0

inserisci qui la descrizione dell'immagine

Per me questi due file li ho cancellati per errore, dopo aver annullato questi due file e averli aggiunti alle mie modifiche, sono stato in grado di eseguire il commit delle mie modifiche su git.


0

Avevo questo e il mio .gitignore era nella cartella del mio progetto, ma le principali cartelle git erano a livello di soluzione. Spostare .gitignore nelle cartelle a livello di soluzione / git ha funzionato. Non so ancora come ci sia arrivato ma ...


-1

Prova a copiare il file nella tua directory manualmente (C: \ Users \ Admin \ AppData \ Local \ Temp \ WebSitePublish \ digisol - 1147805695 \ obj \ Debug \ Package \ PackageTmp.vs \ digisol \ v15 \ Server \ sqlite3)


-1

Avevo fatto sopra le soluzioni, finalmente questo lavoro ha risolto il mio problema:

  • Chiudi lo studio visivo

  • Esegui git bash nella cartella del progetto

  • Scrivi :

    git add.

    git commit -m "[il tuo commento]"

    git push


-2

Per risolvere questo problema è semplice. Prima chiudi Visual Studio e apri Esplora risorse, vai alla cartella delle posizioni .vs e apri le proprietà della cartella e controlla l'opzione nascosta

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.