Visual Studio 2017 - Git non è riuscito con un errore irreversibile


153

Sto utilizzando Visual Studio 2017 Community Edition (CE) e ho effettuato l'accesso al mio account Microsoft e sono connesso a VSTS. Riesco a vedere tutti i miei progetti e repository, ma quando provo a estrarre / recuperare / inviare le modifiche ottengo il seguente errore:

Error encountered while pushing to the remote repository: Git failed with a fatal error.
PushCommand.ExecutePushCommand

E di conseguenza anche per i comandi fetch and pull.

Ho installato Git per Windows sul programma di installazione di Visual Studio 2017 e non solo non funziona con VSTS, ma non riesco a lavorare con nessuno dei miei repository GitHub. Qualcun altro l'ha notato? Finora è successo su due delle mie macchine.

Visual Studio 2015 Enterprise Edition (EE) e CE funzionano perfettamente per me.

Sembra che questo problema abbia ottenuto molto più riconoscimento di quanto pensassi, il che mi porta a credere che questo sia un problema con il modo in cui Visual Studio sta gestendo Git. Ho anche notato che ogni volta che aggiorno Visual Studio, questo problema si ripresenta e devo seguire i passaggi di alcune delle risposte seguenti per far funzionare nuovamente Git. Non sono sicuro del perché questo accada e non so nemmeno se Microsoft abbia intenzione di risolvere questo problema.


2
hai trovato qualche soluzione?
JerryGoyal,

Ho provato almeno 3 dei metodi con risposta senza successo. Peggio ancora, non ho nemmeno idea di cosa abbia causato questo.
MMalke,

prova ad andare nella cartella della soluzione in cmd e usando git push per vedere l'errore reale, ho avuto lo stesso problema, ho provato molte cose, la riga di comando mi ha dato il vero motivo dell'errore (ho contrassegnato la mia e-mail come privata in github e era in conflitto con i dettagli push in quanto renderebbe visibile la mia e-mail nella modifica del codice)
Royi Mindel

1
Inoltre stavo ottenendo tutti i tipi di errori, risolvendoli semplicemente aggiornando l'estensione GitHub Tools > Extensions & Updates.
Daniel Bailey,

Risposte:


89

Dopo aver modificato le credenziali generiche dal Pannello di controlloAccount utenteGestione credenziali per Git , ha funzionato per me.

Inserisci qui la descrizione dell'immagine


1
Questo ha funzionato per me. Sembrava anche la più semplice di tutte le soluzioni suggerite
Steve Kennedy il

1
Sono contento che aiuti. Potresti per favore votarlo se aiuta? Potrebbe aiutare gli altri. Grazie!
wbing520,

1
Grazie per questo. Risolto il mio problema con GIt nell'ultimo VS2017 aggiornato
Sherwin,

2
Ho appena rimosso i collegamenti git con credenziali generiche, ha funzionato.
Kundan Vuppala,

2
Per Credential Managercercare basta cercarlo in Windows 10 (usare il tasto Windows). Quindi fare clic su Credenziali di Windows. Scorri verso il basso fino alla sezione Credenziali generiche e cerca git: https://your.tfs.server. Ho ricevuto questo errore dopo aver modificato la mia password di Windows.
goku_da_master,

73

Ho intenzione di aggiungere una soluzione qui che le risposte precedenti non hanno già menzionato, ma questo è ciò che l'ha risolto per me.

  1. Passare a C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\ed eliminare la Gitcartella.

  2. Assicurati che sul tuo sistema non sia installata alcuna versione di Git, rimuovila dal Pannello di controlloProgramma e funzionalità (non è necessario rimuovere TortoiseGit dalla mia esperienza, solo installazioni native ).

  3. Apri il programma di installazione di Visual Studio 2017 e deseleziona "Git per Windows" nelle opzioni di installazione.

  4. Andate al sito Git e installa l'ultima versione di Git per Windows.

  5. Torna al programma di installazione di Visual Studio e spunta nuovamente "Git per Windows". Non scaricherà una nuova versione anche se potrebbe sembrare così. Fatto ciò, Git dovrebbe andare bene con VSTS e TF Explorer.


9
Avevo già installato git per Windows. Eseguire il passaggio 1 e il passaggio 5 è stato per me.
Tomas Dittmann,

4
Ahem - o Enterprise invece di Community nel percorso sopra ;-)
PhatBuck

@Douglas hai perfettamente ragione. Ho seguito quello che hai menzionato. Risolve il problema.
Tun

1
Al passaggio 4 ho usato Git a 64 bit per Windows e questo ha funzionato per me. Il mio VS2017 15.7.3 può ancora una volta spingere sul mio telecomando senza ottenere questo errore.
qxotk,

2
Per me, tutto ciò di cui avevo bisogno era il passaggio 1. (VS 2017 Enterprise, avevo già installato git per Windows.) Sono uscito prima da Visual Studio 2017, ho eliminato quella cartella GIT, quindi ho ricaricato VS 2017 e tutto è andato bene. gitCartella rimossa daC:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer
Barumpus

41

Ho avuto un problema diverso. Il mio computer conteneva file DLL OpenSSL precedenti in system32 e syswow64, quindi per risolvere il mio problema ho dovuto copiare libeay32.dlle ssleay32.dllda una cartella a un'altra cartella all'interno delle cartelle Git di Visual Studio 2017.

DA: C:\Program Files (x86)\Microsoft Visual Studio\2017\vs_edition\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\bin\

TO: C:\Program Files (x86)\Microsoft Visual Studio\2017\vs_edition\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\libexec\git-core

Rif .: Git - Impossibile clonare il repository remoto


7
Questo ha funzionato per me, ma dove diavolo hai trovato la chiave?
StingyJack

Lo stesso trucco funziona per "Professional", copia le DLL, chiude istanze VS, riapri una e prova a chiudere di nuovo.
cvocvo,

Questi non erano gli unici file che mi mancavano. Questo link descrive come scoprire cosa devi copiare. developercommunity.visualstudio.com/content/problem/27220/…
Riki

Questa potrebbe essere la soluzione che stiamo tutti cercando! Grazie!
Tsalaroth,

Ha funzionato per me, errore:Error encountered while cloning the remote repository: Git failed with a fatal error. CloneCommand.ExecuteClone
Ogglas,

14

Ho provato molto e finalmente ho funzionato con alcune modifiche da quello che ho letto in Git - Impossibile clonare il repository remoto :

  1. Modifica l'installazione di Visual Studio 2017 CE → rimuovi Git per Windows (programma di installazione → modifica → singoli componenti).

  2. Elimina tutto da C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git.

  3. Modifica l'installazione di Visual Studio 2017 CE → aggiungi Git per Windows (programma di installazione → modifica → singoli componenti)

  4. Installa Git su Windows (versione a 32 o 64 bit), con Git configurato nel percorso di sistema.

Forse i punti 2 e 3 non sono necessari; Non ci ho provato.

Ora funziona bene sul mio Gogs.


1
Ha funzionato per me, ma subito dopo 1 ho anche disinstallato Git per Windows nell'elenco dei programmi per il mio PC.
benichka,

Questo ha funzionato per me. Quindi sembra che la versione di Git fornita da MS non sia corretta e sostituirla con la versione ufficiale di Git per Windows risolve il problema: assicurati solo che sia nel PERCORSO e che sia installata l'unica versione di Git. Penso che stiamo finalmente migrando verso VS2017.
Enno,

12

In Control Panel\All Control Panel Items\Credential Manager==> Windows Credentials Rimuovi Git: http: // ........

e riprova ..

Godere !


Perché pensi che il problema sia in crediti sbagliati? Aiuterà solo in un caso, ma riceverai un altro errore. Questo non risolve il problema
Alex Z,

11

Questo è l'errore che stavo ottenendo:

Git failed with a fatal error.
pull --verbose --progress --no-edit --no-stat --recurse-submodules=no origin

Ho provato tutti i metodi precedenti, ma non hanno funzionato. Successivamente ho scoperto che c'erano alcuni conflitti nel codice (vedi la finestra di output di Visual Studio 2017).

Ho semplicemente ripristinato il codice e ha funzionato.


7

Una volta ho avuto un tale errore da Git mentre stavo provando a sincronizzare un repository (ho provato a inviare i miei commit mentre avevo modifiche in sospeso dal mio collega):

Git fallito con un errore fatale. pull --verbose --progress --no-edit --no-stat --recurse-submodules = nessuna origine

Si è scoperto che dopo aver premuto il tasto Commit all pulsante per creare un commit locale, Visual Studio aveva lasciato un file senza impegno e questo messaggio di errore elaborato in realtà significava: "Conferma tutte le modifiche".

Quel file mancante era il modello Entity Framework 6, e spesso viene mostrato come file senza commit sebbene non sia stato modificato nulla.

È possibile eseguire il commit di tutti o annullare tutte le modifiche non impegnate.


2
Il mio era simile a questo. Stavo riscontrando un problema in cui la versione più recente di VS 2017 (15.3.2) all'improvviso mi faceva costantemente controllare questo strano file storage.ide. Ho dovuto continuare a salvare quel file dopo aver chiuso / aperto VS e alla fine ha funzionato. Disclaimer - Ho anche completato i passaggi nella risposta più accettata sopra.
jaredbaszler,

Ho appena notato che tutti i file che ho eseguito il commit erano ancora in "Modifiche". Li ho ricominciati. E il problema è andato via.
Giuda,

5

Ciò sembra accadere in VS 2017 quando c'è un commit in sospeso che sarebbe in conflitto con l'attrazione. Se vai a un terminale di comando e fai un "git pull origin", di solito otterrai l'errore che è la fonte della confusione. Per risolvere, controlla tutte le modifiche apportate a VS 2017 e quindi riprova a eseguire il pull o la sincronizzazione da VS 2017. Inutile dire che questo non è il comportamento desiderato in VS 2017.


4

Ho avuto lo stesso problema. Il riavvio di Visual Studio ha funzionato per me ... Puoi provarlo prima di reinstallare i contenuti.


4

Sto usando GitKraken e Visual Studio 2017.

Quando GitKraken clona un repository, lascia l'indirizzo di recupero come "git@github.com: user / Repo.git", invece di " https://github.com/user/Repo.git ".

Per risolvere questo, andare a Team ExplorerImpostazioniRepository ImpostazioniTelecomandiModifica , e il cambiamento "git @" a "https: //" e ":" a "/".


4

Ho avuto questo problema dopo aver cambiato la password di accesso git!

Ho dovuto ripristinare le credenziali tramite la console di PowerShell.

A livello di cartella del repository git, lo script era il seguente:

git config --system --unset credential.helper

git config --system credential.helper store

git fetch

Ti verrà richiesto l'utente e quindi la password.

Il comando successivo non richiederà più l'autenticazione:

git fetch

4

inserisci qui la descrizione dell'immagine

Quando faccio pull / fetch / push ho ricevuto l'errore sopra nella mia finestra di output, ho seguito l'assolo di seguito, ha risolto il mio problema.

Se stai utilizzando Visual Studio 2017 Enterprise Edition, sostituisci userId con il tuo ID utente nel comando seguente ed esegui questo comando nella finestra di esecuzione di Windows (tasto Windows + R).

runas / netonly / user: UserId "C: \ Programmi (x86) \ Microsoft Visual Studio \ 2017 \ Enterprise \ Common7 \ IDE \ devenv.exe"

inserisci qui la descrizione dell'immagine

Questo richiederà la password, inserire la password. Si aprirà una nuova istanza di Visual Studio e inizierà a funzionare correttamente ...


3

Ho avuto lo stesso problema. I seguenti passaggi hanno risolto il problema per me:

  1. Backup ed eliminazione "C: \ Programmi (x86) \ Microsoft Visual Studio 14.0 \ 2017 \ Professional \ Common7 \ IDE \ CommonExtensions \ Microsoft \ TeamFoundation \ Team Explorer \ Git"
  2. Installa l'ultima versione di Git: https://git-scm.com/download/win

2
Ho due macchine. Entrambi hanno VS2017RTM su di essi. Stessa versione di VS e stessa versione di GitHub.VisualStudio. Nessuna cartella TeamExplorer contiene una cartella Git. Uno funziona e uno no. :(
Bill Noel,

3

Wow! Ci sono così tante soluzioni a questo problema!

Prova questo facile!

Cambia la tua password!

Proprio l'altro giorno, ho iniziato a ricevere questo avviso che la mia password sarebbe scaduta tra 14 giorni. Ora 2 giorni dopo, visualizzo questo errore:

inserisci qui la descrizione dell'immagine

Non avevo davvero voglia di hackerare git o le librerie OpenSSL, quindi ho appena cambiato la password di Windows sul mio computer e ha funzionato!

Aggiornare

Poi ha ricominciato a succedere. Da Team Explorer vai su Sincronizza . Quindi eseguire Azioni> Apri prompt dei comandi . Nel prompt dei comandi digitare git push origin. Potrebbe funzionare per te.


Questa sembra essere la soluzione più intelligente! Grazie;)
markzzz

2

Ho avuto un problema molto simile e le istruzioni di un tecnico Microsoft lo hanno risolto per me:

  • Chiudi tutte le istanze di Visual Studio.
  • Aprire Task Manager e verificare se sono in esecuzione servizi TFS. Selezionare ciascuno di essi e fare clic su Termina processo albero.
  • Passare alla cartella seguente ed eliminare tutti i contenuti e le cartelle in% LocalAppData% \ Microsoft \ Team Foundation {versione} \ Cache
  • Vai al Pannello di controllo -> Account utente -> Gestisci le tue credenziali -> Credenziali di Windows, seleziona l'URL VSTS per rimuoverlo
  • Quindi vai su "C: \ Users \ NOME UTENTE \ AppData \ Local \ GitCredentialManager \ tenant.cache" ed eliminalo
  • Vai anche a "C: \ Users \ NOME UTENTE \ AppData \ Local.IdentityService" ed eliminalo

1

Ho riscontrato anche questo problema. Avevo sincronizzato il mio codice all'inizio della giornata, quindi non aveva senso che improvvisamente avesse dato questo errore Git. Il riavvio di Visual Studio non ha fatto alcuna differenza. Dopo aver esaminato le risposte di cui sopra e non ho trovato alcuna soluzione chiara, ho deciso di provare a sincronizzare al di fuori di Visual Studio utilizzando TortoiseGit che avevo già installato. Questo ha funzionato. Sono stato quindi in grado di sincronizzare normalmente con Visual Studio. Se non hai già TortoiseGit, puoi scaricarlo (gratuitamente) da tortoisegit.org.


VS non è in grado di creare una nuova origine remota. Questa è l'unica cosa che funziona per me. Fai il push iniziale sul telecomando dalla riga di comando o con Tortoise e poi VS può usarlo.
HackSlash,

1

Nel mio caso, Windows aveva eseguito un aggiornamento e era in attesa di riavviare il PC. Non avevo visto alcuna notifica ma, beh ... spegnerlo e riaccenderlo ha risolto il problema.

Provalo prima di fare il monkeying con una di queste directory e applicazioni di Visual Studio.


1

Ho ricevuto i seguenti messaggi di errore utilizzando Visual Studio 2017 CE.

Impossibile inviare al repository remoto. Vedi la finestra Output per maggiori dettagli.

La finestra di output mostrava quanto segue:

Errore rilevato durante l'invio al repository remoto: processo Git non riuscito in modo imprevisto. PushCommand.ExecutePushCommand

Ho provato a spingere le modifiche usando GitHub Desktop. Mostra il seguente messaggio di errore.

Non è possibile inviare questi commit in quanto contengono un indirizzo e-mail contrassegnato come privato su GitHub.

Questo è tutto. Soluzione:

apri l'account GitHub >> Impostazioni >> Email >> Deseleziona "Mantieni il mio indirizzo email privato"

E 'fatto. Questo è stato il problema nel mio caso.


Anche questo era il mio problema. Ho dovuto deselezionare l' Block command line pushes that expose my emailimpostazione, spingere commit in sospeso. Quindi ho configurato il mio indirizzo email senza risposta GitHub in git global config. Eventuali impegni futuri sono stati quindi associati a quell'e-mail e ora possono essere inviati anche con l' Block command line pushes that expose my emailattivazione di nuovo.
SvenAelterman,


1

Sono stato in grado di risolvere il problema utilizzando questa riga nella riga di comando senza reinstallare nulla.

git config --global credential. {myserver} .authority NTLM

Sostituisci semplicemente {myserver} con il nome host del tuo server (senza http o numero di porta).

Successivamente, VS è stato in grado di connettersi correttamente.

Fonte: https://github.com/Microsoft/Git-Credential-Manager-for-Windows/blob/master/Docs/Faq.md#qi-thought-microsoft-was-maintainment-this-why-does-the- TFS GCM-non-lavoro-come-previsto-con-


1

Questo problema mi si presenta sempre, quando devo cambiare la mia password. Sembra che ci sia sempre un altro problema con le mie vecchie credenziali che non vengono aggiornate.

  1. Vai a Gestione credenziali di Windows

  2. Rimuovi tutte le voci credenziali Tfs

Finito


1

Ho avuto lo stesso errore pop-up in VS 2017 durante il tentativo di eliminare un ramo remoto. Il problema era che il ramo non era sul server (usando TFS2018 con GIT), ma in qualche modo Visual Studio lo aveva mostrato nella sezione "remoto / origine". Ciò significava che non potevo eliminare il ramo remoto (VS stava dando questo errore, mentre il server explorer non mostrava affatto il ramo).

Ecco come risolverlo (testato in VS 2017):

  1. In Visual Studio, fai doppio clic sul ramo remoto "canaglia";
  2. VS avrebbe dovuto ora creare un ramo locale da esso;
  3. Fare clic destro sul ramo locale, selezionare "Disattiva ramo remoto";
  4. Fare clic destro sul ramo locale, selezionare "Push branch";
  5. Ora dovresti avere un vero ramo remoto corrispondente;
  6. Elimina il ramo remoto, quindi il ramo locale.

Spero che possa aiutare qualcuno che finisce su questo thread ad avere lo stesso problema.


0

Ho anche avuto questo problema dopo aver ricevuto wgetdagli strumenti GNU e averlo copiato in c: \ windows . I file libeay.dlle libssl.dllerano anche nell'archivio. Quando quelli erano in c: \ windows , ho avuto questo problema. Rimuovendoli immediatamente risolto. Quindi, controlla se hai questi .DLL da qualche parte nel tuo percorso, VS potrebbe prendere una versione di questi altri software invece di usare quelli che si aspetta.


0

La risposta di AngelBlueSky ha funzionato parzialmente per me. Ho dovuto eseguire queste linee aggiuntive per pulire la configurazione globale di Git dopo il passaggio 4:

git config --global credential.helper wincred
git config http.sslcainfo "C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt"
git config --global --unset core.askpass
git config --global --unset mergetool.vsdiffmerge.keepbackup
git config --global --unset mergetool.vsdiffmerge.trustexitcode
git config --global --unset mergetool.vsdiffmerge.cmd
git config --global --unset mergetool.prompt
git config --global --unset merge.tool
git config --global --unset difftool.vsdiffmerge.keepbackup
git config --global --unset difftool.vsdiffmerge.cmd
git config --global --unset difftool.prompt
git config --global --unset diff.tool

Quindi git config -l(eseguito da qualsiasi repository git) dovrebbe restituire solo questo:

core.symlinks=false
core.autocrlf=false
core.fscache=true
color.diff=auto
color.status=auto
color.branch=auto
color.interactive=true
help.format=html
diff.astextplain.textconv=astextplain
rebase.autosquash=true
user.name=xxxxxxxxxxxx
user.email=xxxxx@xxxxxx.xx
credential.helper=wincred
core.bare=false
core.filemode=false
core.symlinks=false
core.ignorecase=true
core.logallrefupdates=true
core.repositoryformatversion=0
remote.origin.url=https://xxxxxx@bitbucket.org/xxx/xxx.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
branch.master.remote=origin
branch.master.merge=refs/heads/master
branch.identityserver.remote=origin
branch.identityserver.merge=refs/heads/identityserver
http.sslcainfo=C:/Program Files/Git/mingw64/ssl/certs/ca-bundle.crt

Eseguire i comandi git statuse git fetchper confermare che funzioni dalla riga di comando.

Quindi vai a Visual Studio, dove dovrebbero essere tornati i tuoi repository e tutte le operazioni di sincronizzazione / push / pull dovrebbero funzionare senza problemi.


0

Dopo aver installato l'ultima versione di Git per Windows è necessario aprire il file di configurazione per modificare:

git config --global --edit

Fare clic Insert, rimuovere tutte le impostazioni, fare clic Esc, digitare :wqe, Enterper salvare.

Ora puoi clonare il repository tramite Bash o IDE con un utente valido.


0

Nel mio caso non ho dovuto fare nulla di così drastico come disinstallare Git secondo alcune delle risposte qui; Ho dovuto solo usare la riga di comando invece di Visual Studio.

Apri cmdalla radice della tua soluzione e inserisci:

git pull

Ti verrà quindi detto esattamente qual è il problema. Nel mio caso mi ha detto che avevo apportato modifiche non confermate che sarebbero state sovrascritte e che dovevo impegnarle prima di poter continuare.

Una volta fatto questo, l'attrazione è riuscita e ho potuto risolvere il conflitto nello strumento di unione.

TLDR

Utilizzare la riga di comando anziché Visual Studio per ottenere un messaggio di errore più completo.


Grazie per aver risolto il mio problema. Ho cambiato la password del mio nome utente di dominio e prima di allora avevo delle modifiche non confermate. Quando viene utilizzato git pull, mostra il popup di modifica della password del nome utente che mi ha aiutato a capire qual era il problema. Poi ho fatto il reset di git per perdere tutte le modifiche precedenti e poi ho risolto il mio problema in Visual Studio
Esen

0

Avevo problemi simili. In Visual Studio 2017, con l' opzione Rebase ho risolto il mio problema.

Sto avendo solo un ramo principale. Rinnovo da master a origin / master (significa allo stesso ramo) e ho fatto clic su Rebase . Prima di fare Rebase, lo stato era, mi ero impegnato le mie modifiche, tuttavia non ero in grado di inviare / sincronizzare poiché la mia base di filiali locali e la base di codice Git non erano in stato sincronizzato.


0

Ha aggravato il problema eliminando il repository locale in modo da poter clonarne una nuova copia. Mi sono trovato di fronte a un nuovo errore "impossibile trovare git Git non riuscito con un errore fatale. Fatale: repository 'xyz' non trovato"

Ho provato tutto ciò di cui ho cercato su google senza risoluzione. Il seguente semplice passaggio ha funzionato per me e lo sto aggiungendo all'elenco crescente di possibili risoluzioni:

git config --get Il risultato http.proxy è http://google.com:80

questo non è giusto, quindi mi sono liberato di esso.

git config --global --unset http.proxy



0

Nel mio caso, un test dell'unità Jest fallito che impedisce il push al repository dà lo stesso errore generico di "Errore riscontrato durante il push al repository remoto: Git fallito con un errore fatale".

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.