Come correggere l'errore Git "Le modifiche locali ai seguenti file verranno sovrascritte dall'unione"

Il messaggio di errore " Le modifiche locali ai seguenti file verranno sovrascritte dall'unione " viene visualizzato nel meccanismo di controllo della versione di Git. Questo errore si verifica se è stato modificato un file che presenta anche modifiche nel repository remoto.

Errore Git: le modifiche locali ai seguenti file verranno sovrascritte dall'unione

Questo messaggio di errore viene evitato SE non ci sono file senza commit che hanno anche modifiche nel repository remoto. Quando si verifica questo messaggio, è meglio consultare gli altri membri del team e chiedere la loro opinione. Sia che tu voglia unire le modifiche locali o mantenere la versione presente nel repository, è meglio tenere tutti a bordo.

Cosa sono i repository? Cosa sono i push e pull in Git?

Un repository è un tipo di archiviazione per il codice che viene costantemente modificato e ottenuto dai membri del team attraverso il meccanismo di controllo della versione di GitHub. Un ' Pull' significa che stai trasferendo l'ultima versione del repository sul tuo archivio / IDE locale (Integrated Development Environment) come Pycharm ecc.

Dopo un pull, si apportano modifiche al codice o si aggiungono ulteriori funzionalità. Una volta terminato, si ' spinge' il codice nel repository in modo da salvare le modifiche e apportare le aggiunte. Il codice è accessibile anche ad altre persone.

Se non si ha familiarità con il controllo della versione di Github, si consiglia di esaminare prima tutti i concetti di base. In questo articolo, supponiamo che tu abbia già una conoscenza di base e conosci tutti i dettagli.

Come risolvere "Le modifiche locali ai seguenti file verranno sovrascritte dall'unione"?

La risoluzione di questo messaggio di errore dipende da cosa si desidera fare. È possibile annullare le modifiche locali ed estrarre quelle nel repository oppure salvare le modifiche locali in uno stash ed estrarre la versione dal repository. Tutto dipende dalle tue preferenze.

Pertanto, ti consigliamo di consultare i membri del tuo team e assicurarti di essere tutti sulla stessa pagina prima di andare avanti. Se commetti in modo errato o invii la versione sbagliata, ciò potrebbe influire sull'intero team.

Metodo 1: forzare un pull per sovrascrivere le modifiche locali

Se non ti interessano le modifiche apportate localmente e desideri ottenere il codice dal repository, puoi forzare un pull. Questo sovrascriverà tutte le modifiche locali fatte sul tuo computer apparirà una copia duplicata della versione nel repository.

Esegui i seguenti comandi nel tuo IDE:

 git reset - pull git duro 

Ciò distruggerà istantaneamente tutte le modifiche locali, quindi assicurati di sapere cosa stai facendo e di non aver bisogno delle modifiche locali.

Metodo 2: mantenere entrambe le modifiche (locale e dal repository)

Se si desidera conservare entrambe le modifiche (modifiche apportate localmente e modifiche presenti nel repository), è possibile aggiungere e confermare le modifiche. Quando tiri, ci sarà ovviamente un conflitto di unione. Qui puoi usare gli strumenti nel tuo IDE (come Difftool e mergetool) per confrontare le due parti di codice e determinare quali modifiche conservare e quali rimuovere. Questa è la via di mezzo; nessuna modifica andrà persa fino alla loro rimozione manuale.

 git aggiungi $ the_file_under_error git commit git pull 

Quando si ottiene un conflitto di unione, pop quegli strumenti di risoluzione dei conflitti e controllare riga per riga.

Metodo 3: mantenere entrambe le modifiche MA non impegnarsi

Questa situazione si verifica di volta in volta in cui gli sviluppatori non sono pronti a eseguire il commit perché è presente un codice parzialmente rotto di cui si sta eseguendo il debug. Qui possiamo riporre le modifiche in modo sicuro, estrarre la versione dal repository e quindi decomprimere il codice.

 git stash save --keep-index 

o

 git stash 
 git pull git stash pop 

Se ci sono alcuni conflitti dopo aver fatto apparire lo stash, dovresti risolverli nel solito modo. Puoi anche usare il comando:

 git stash si applica 

invece di pop se non sei pronto a perdere il codice nascosto a causa di conflitti.

Se l'unione non sembra un'opzione praticabile per te, considera di fare un rebase. Il rebasing è il processo di spostamento o combinazione di una sequenza di commit in un nuovo commit di base. In caso di rebasing, modifica il codice in:

 git stash git pull --rebase origin master git stash pop 

Metodo 4: apporta modifiche a parti "specifiche" del codice

Se si desidera apportare modifiche a parti specifiche del codice e non si desidera sostituire tutto, è possibile eseguire il commit di tutto ciò che non si desidera sovrascrivere e quindi seguire il metodo 3. È possibile utilizzare il comando seguente per le modifiche che vuoi sovrascrivere dalla versione presente nel repository:

 git checkout path / to / file / to / ripristina 

o

 git verifica HEAD ^ percorso / a / file / a / ripristina 

Inoltre, è necessario assicurarsi che il file non sia messo in scena tramite:

 git resetta il percorso HEAD / a / file / a / ripristina 

Quindi procedere con il comando pull:

 git pull 

Questo tenterà quindi di recuperare la versione dal repository.

Articoli Interessanti