Errore di unione GIT "il commit non è possibile perché hai file non uniti"


172

così ho dimenticato di estrarre il mio codice prima di modificarlo e poi quando ho commesso il nuovo codice e ho provato a spingere, ho ricevuto l'errore push non è possibile, a quel punto ho fatto un "git pull" che ha evidenziato alcuni file con conflitto. Ho rimosso i conflitti ma non so cosa fare da qui.

Ho provato di git commitnuovo, ma dice "il commit non è possibile perché hai file non uniti"

Risposte:


245

Se hai risolto i conflitti con cui devi aggiungere i file allo stage git add [filename], esegui il commit come di consueto.


2
Cosa succede se questi sono i file su cui non ho lavorato? Devo ancora aggiungerli? Qual è il modo migliore per affrontarlo?
R11G

1
Ho dovuto farlo per un file che è stato eliminato in un ramo che stavo unendo nel ramo corrente. Git lo ha contrassegnato come un conflitto, quindi ho dovuto eliminare il file localmente quindi git add the_fileper impegnare l'unione.
Brendon Muir,

come trovare l'elenco dei conflitti?
polina-c,

7
git statusti mostrerà i file che hanno conflitti
jonnystoten

@jonnystoten grazie per il tuo commento! Ho usato git statuse trovato un file che diceva both deleted. L'interfaccia utente di WebStorm non ha mostrato il problema, ha solo detto che non è stato possibile eseguire il commit di un'unione. Risolto!
Yuri Predborski,

52

Devi fare due cose. Per prima cosa aggiungi le modifiche con

git add .
git stash  

git checkout <some branch>

Dovrebbe risolvere il tuo problema come risolto per me.


Non è richiesto solo git add. basterebbe
Rais Iqbal,

3
Inoltre, questo è un grosso battitore se non vuoi git addtutti i tuoi file di lavoro
Courtrai l'

11

È possibile utilizzare git stashper salvare il repository corrente prima di eseguire il commit che si desidera effettuare (dopo aver unito le modifiche dal repository upstream con git stash pop). Ho dovuto farlo ieri quando ho avuto lo stesso problema.


2

Questo errore si verifica quando si risolvono i conflitti ma il file deve ancora essere aggiunto nell'area dello stage. git add. lo risolverei. Quindi, prova a eseguire il commit e l'unione.


0

Ho avuto un problema simile che si riduceva alla rimozione dei file in "percorsi non uniti"

Quei file dovevano essere rimossi usando git rm


0

Quindi dall'errore sopra. Tutto quello che devi fare per risolvere questo problema è ripristinare il codice. ( git revert HEAD) quindi, git pullquindi ripetere le modifiche, quindi di git pullnuovo ed è stato in grado di eseguire il commit o l'unione senza errori.


0

Dal momento che git 2.23 (agosto 2019) ora avete una scorciatoia per farlo: git restore --staged [filepath]. Con questo comando, è possibile ignorare un file in conflitto senza doverlo aggiungere e rimuovere.

Esempio:

> git status

  ...
  Unmerged paths:
    (use "git add <file>..." to mark resolution)
      both modified:   file.ex

> git restore --staged file.ex

> git status

  ...
  Changes not staged for commit:
    (use "git add <file>..." to update what will be committed)
    (use "git restore <file>..." to discard changes in working directory)
      modified:   file.ex

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.