Sta succedendo qualcosa di sbagliato in uno dei file nel mio repository git locale. Quando sto cercando di cambiare il ramo dice:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Cosa potrebbe significare?
Sta succedendo qualcosa di sbagliato in uno dei file nel mio repository git locale. Quando sto cercando di cambiare il ramo dice:
Unlink of file 'templates/media/container.html' failed. Should I try again? (y/n)
Cosa potrebbe significare?
Risposte:
Ciò potrebbe significare che un altro programma sta usando il file, il che impedisce a git di "spostare" il file dentro o fuori dalla directory di lavoro quando si tenta di cambiare i rami.
Ho avuto questo accadere su Windows Vista dove eclipse è il programma "utilizza" il file. Il file potrebbe non essere effettivamente aperto in eclipse ma potrebbe essere stato aperto da un processo eseguito da eclipse.
In questo caso, prova a chiudere il file in tutte le applicazioni che potrebbero averlo utilizzato. Se il problema persiste, chiudere completamente tutte le applicazioni che potrebbero aver aperto il file.
GitKraken
potresti ottenerlo se esegui comandi come rebase
Ho avuto questo problema e risolto dal comando: git gc
il comando sopra rimuove temp e file non necessari. (Netturbino.)
git pull
avviato git gc
automaticamente e gc ha provato ad accedere ad alcuni file .pack e .inx. Questi erano bloccati dal processo "windows git", quel git pull
comando di proprietà . Esecuzione git gc
manuale e successiva: git pull
risolve davvero il problema.
git gc
ho avuto di nuovo lo stesso errore quando gc
era in corso
questa soluzione da qui ha funzionato per me:
Questa è una risposta specifica per Windows, quindi sono consapevole che non è rilevante per te ... La sto solo includendo a beneficio dei futuri ricercatori.
Nel mio caso, è stato perché stavo eseguendo Git da una riga di comando non elevata. "Esegui come amministratore" risolto il problema per me.
Ctrl+C
per terminare l'elenco molto lungo di file non collegabili; è uscito gitbash, il mio IDE e l'applicazione Windows GitHub; riavviato gitbash in modalità "Esegui come amministratore" elevata; e corse git gc --aggressive
. Ci è voluto un po 'per completare, ma ce l'ho fatta senza errori.
Ho riscontrato questo problema mentre facevo un git pull
.
Ho provato git gc
e risolto il mio problema.
Nel mio caso non ci sono processi che toccano il file o la directory. Forse succede se il percorso è molto lungo, a causa di una restrizione del sistema operativo (windows). Prova ad abilitare il flag di supporto longpath nella configurazione globale di git come indicato di seguito:
git config --global core.longpaths true
oppure prova a impostare il flag di risposta sì / no se non è conflittuale per te
set GIT_ASK_YESNO=false
Se il percorso è troppo lungo, non ho trovato una soluzione di successo.
GIT_ASK_YESNO
, non riesco a trovare informazioni su questo. Da dove viene ?
core.longpaths
con ulteriore: reset --hard prune gc ha funzionato per me - ma ho dovuto chiudere AndroidStudio per non
Ho provato git gc
e risolto il mio problema.
Questo potrebbe essere utile per qualcuno; se tutto quanto sopra non ha funzionato per te, segui questi passaggi:
Chiudi il tuo IDE (il mio era Eclipse, non sono sicuro se si applica a Intellij e altri) o a qualsiasi altra app che potrebbe usare git.
Apri git dalla riga di comando (nel mio caso avevo git bash) ed esegui git gc
come indicato da altri.
Questo ha fatto la magia per me.
Mentre sto usando gitkraken e il prompt dei comandi, ho riscontrato lo stesso problema. E poi corro git gc
comando risolto il mio problema. Quindi sono felice e voglio condividere alcuni dei punti che potrebbero essere utili.
Cosa git gc
farà?
git gc
rimuovendo oggetti non raggiungibili che potrebbero essere stati creati da precedenti invocazioni di git add.
Quando correre git gc
?
Dal doc , gli utenti sono incoraggiati a eseguire questa attività su base regolare all'interno di ciascun repository per mantenere un buon utilizzo dello spazio su disco e buone prestazioni operative.
Come renderlo auto-configurabile?
Alcuni comandi git possono eseguire automaticamente git gc; vedere la bandiera --auto sotto per i dettagli. Se sai cosa stai facendo e tutto quello che vuoi è disabilitare questo comportamento in modo permanente senza ulteriori considerazioni, basta farlo
git config --global gc.auto 0
Nel mio caso (Win8.1, TortoiseGit in esecuzione), era il processo chiamato "cache di stato TortoiseSVN" a bloccare il file.
Ucciderlo mi ha permesso di eseguire "git gc" senza ulteriori problemi. Il processo sopra descritto viene avviato da TortoiseGit, quindi non è necessario riavviarlo manualmente.
Ho avuto questo tipo di problema su Windows 7 e si è scoperto che era dovuto a un git.exe
processo orfano .
Per risolverlo, apri Task Manager e termina tutti i git.exe
processi.
Poiché i git
comandi sono di breve durata, normalmente non dovresti mai vederne nessuno git.exe
in Task Manager. Quando sono lì, di solito significa che qualcosa non va, e dovresti uccidere quei processi.
Su Windows 8: ho eseguito git gc e diceva che git gc era già in esecuzione, ho eseguito git gc --force e il garbage collector ha funzionato.
Potrei quindi cambiare succursale e unirmi senza problemi, provare git gc --force.
Forse il processo di gc non si è fermato con grazia per una ragione o per l'altra.
Ho avuto questo problema con i .tmp
file nella /.git/objects/pack
cartella. Penso che qualcosa sia fallito durante un push o pull, quindi ho rimosso questi file temporanei e ripristinato HEAD al mio ultimo commit. Non sono sicuro se questo è consigliato ma ha funzionato per me. git count-objects -v
Mi ha anche dato un elenco dei .tmp
file che non appartenevano alla cartella del pacchetto.
Oppure per eliminare i messaggi y / n in Windows git open cmd.exe
ed eseguire:
SETX GIT_ASK_YESNO false
visto qui: https://twitter.com/petercamfield/status/494805475733807104
git gc
, git count-objects -v
aiuta a identificare gli oggetti temporanei rimasti nella pack
cartella.
Sono stato in grado di risolverlo aprendo Powershell come amministratore e da lì
git checkout <branch_name>
Ho affrontato lo stesso problema mentre facevo "git pull". Ho provato il comando di pulizia manuale git 'git gc' e ho risolto il mio problema.
Dopo l'esecuzione del comando
git rm -rf foo.bar
Vedo errore
Unlink of file 'foo.bar' failed. Should I try again? (y/n)
Perché un altro programma sta usando questo file . Ad esempio, quando eseguo un'applicazione Web Java nel modello di debug o eseguo un'applicazione Web sul server, non riesco a eliminare il file di registro. Disattiva il server delle applicazioni (o disattiva il processo di debug), riprova
git rm -rf foo.bar
Vedo che il file è stato eliminato.
Dopo che nessuna delle risposte precedenti sembrava funzionare, la corsa git fetch -p
ha funzionato per me.
Ho riscontrato questo problema in Windows, potresti voler eseguire git bash come amministratore e quindi eseguire i comandi desiderati, che hanno risolto il problema per me.
Ho provato ogni singolo suggerimento in questa pagina e niente mi ha aiutato. Stavo facendo un git fetch
e un git reset --hard origin/development
mi ha dato l'errore sgraziato. Non sono riuscito a ripristinare l'ultimo commit.
Ciò che ha aiutato è stato il controllo di un altro ramo e quindi il controllo del ramo precedente. Molto strano ma ha risolto il problema.
Se stai usando Docker e stai eseguendo Windows 10, potresti voler arrestare il / i contenitore / i in cui potrebbe essere in esecuzione il file. Per mostrare gli stati dei contenitori, esegui
docker ps -a
Per fermarli, corri semplicemente
docker stop <container name or container id>
Questo ha funzionato per me mentre eseguo i miei file locali usando un file .sh
Su Windows, ho visto questo errore su un git clone
repo (abbastanza grande). Chiuso SmartGit e messo in pausa il mio software di backup (CrashPlan), e poi ha funzionato. Non sono sicuro di quale dei 2 ha fatto il trucco, ma se uno dei due esegue, questo potrebbe farlo anche per te.
Ho avuto lo stesso problema mentre eseguivo un pull git e come detto sopra, era a causa di un programma che conteneva quei file e non permetteva un pull git. La chiusura del programma ha aiutato. Di solito, l'IDE (come Eclipse) da cui vengono archiviati i file lo manterrà in background. Chiudere lo stesso e ri-eseguire git pull ha risolto il problema per me.
Ho avuto lo stesso errore e la chiusura dell'app con il file aperto risolto. Sono stato in grado di tornare indietro e premere "Y"