Perché sono presenti modifiche non salvate dopo aver eseguito un pull git in Visual Studio Code?

Sep 20 2020

In Visual Studio Code (VSC), ho una cartella aperta. Quella cartella corrisponde a un repository Git locale il cui repository remoto si trova su GitHub. I 2 repository sono sincronizzati.

Successivamente, aggiungo un file al repository remoto caricando manualmente il file e eseguendo il commit.

Quindi, sincronizzo il repository locale utilizzando il pulsante di sincronizzazione in VSC. Dopo averlo fatto, nella vista Controllo sorgente VSC, mostra 1 modifica in sospeso che è il file che ho appena aggiunto al repository remoto e il file è elencato come una modifica "non salvata" in VSC.

Questo è diverso da come ho usato Git prima sulla riga di comando o su strumenti diversi da VSC, come Eclipse, ad esempio. Sono abituato a come fare questo tipo di flusso di lavoro risulterebbe in un avanzamento rapido di Git in cui il file appena aggiunto al repository remoto NON si presenterebbe come una modifica non confermata; piuttosto, il file sarebbe disponibile solo nel repository locale come risultato di git-pull.

Allo stato attuale, devo ripetere inutilmente la modifica "non impegnata" nel mio repository locale ogni volta che si verifica questo flusso di lavoro solo per sincronizzare nuovamente i 2 repository.

Presumo di fare qualcosa di sbagliato in VSC o di avere qualcosa di mal configurato in VSC.

Qualche pensiero / suggerimento?

Risposte

4 Kevin Oct 01 2020 at 09:41

Si scopre che questo non ha nulla a che fare con VSC. La soluzione al problema si basa in realtà sulle impostazioni di montaggio SMB per i permessi dei file e sulle impostazioni di configurazione git per la sensibilità dei permessi dei file.

La soluzione è descritta qui .

Priyathamsaichand Sep 20 2020 at 12:42

C'è un'estensione chiamata rysnc che può essere utilizzata per ottenere questo risultato.

Sync-Rsync la documentazione è chiara sulla sua funzionalità.

per ulteriori informazioni sulla sua discussione, ecco un problema simile:

https://github.com/microsoft/vscode-remote-release/issues/196

VonC Sep 26 2020 at 20:36

Innanzitutto, assicurati di avere un commit prima di VSCode Sync .
Tu dovresti vedere:

Secondo, consiglierei un rebase durante la sincronizzazione , impostando VSCode git.rebaseWhenSyncsu true.

Questo dovrebbe riprodurre il tuo commit, assicurandoti che il file commit rimanga sottoposto.

jingx Sep 26 2020 at 20:57

Quando hai caricato manualmente e hai eseguito il commit del file su GitHub, è stato creato nella tua directory di lavoro, ma non è mai stato salvato nel repository locale . Quindi, naturalmente, nella visualizzazione del controllo del codice sorgente (essenzialmente git status) si presenta come non vincolato.

Per evitare confusioni, cambierei il tuo flusso di lavoro per non caricare mai un file direttamente nel repository remoto. Invece, eseguire prima il commit nel repository locale e il push in remoto.