Impossibile effettuare il checkout, il file non è unito


87

Sto cercando di rimuovere il file dalla mia directory di lavoro ma dopo aver utilizzato il seguente comando

git checkout file_Name.txt

Ho ricevuto il seguente messaggio di errore

error: path 'first_Name.txt' is unmerged

Cos'è e come risolverlo?

Di seguito è riportato il mio stato git

$ git status
On branch master
You are currently reverting commit f200bf5.
  (fix conflicts and run "git revert --continue")
  (use "git revert --abort" to cancel the revert operation)

Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add <file>..." to mark resolution)

        both modified:      first_file.txt

Untracked files:
  (use "git add <file>..." to include in what will be committed)

        explore_california/

no changes added to commit (use "git add" and/or "git commit -a")

È stato spostato nell'indice di staging ma non sono in grado di pulire la cartella explore_california /
Naseer

1
Se vuoi eliminare, explore_californiafai semplicemente un rm -r explore_californiapoiché non viene tracciato da git.
Brokenfoot

Quello che mi ha fatto è stato chiedere di rimuovere più di 50 file singolarmente e sto ancora premendo y?
Naseer

Ma alla fine ha funzionato. Grazie
Naseer

Risposte:


29

Per rimuovere i file tracciati (first_file.txt) da git:

git rm first_file.txt

E per rimuovere i file non tracciati, usa:

rm -r explore_california

130

Se vuoi eliminare le modifiche apportate al file, puoi fare:

git reset first_Name.txt
git checkout first_Name.txt

2
Ha bisogno del doppio trattino arg? git reset - first_name.txt e git checkout - first_name.txt
demented hedgehog,

2
Si utilizza solo --per separare l'albero che si desidera estrarre dai file che si desidera estrarre. Per una spiegazione più approfondita, prendi un bottino qui: stackoverflow.com/questions/13321458/…
cristianoms

4
Penso che sia più sicuro usare il doppio trattino git reset -- first_Name.txte git checkout -- first_Name.txtnel caso in cui il nome del file sia lo stesso di uno dei tuoi rami / tag / commit.
joeytwiddle

18

lo stato ti dice cosa fare.

Unmerged paths:
  (use "git reset HEAD <file>..." to unstage)
  (use "git add <file>..." to mark resolution)

probabilmente hai applicato una scorta o qualcos'altro che causa un conflitto.

aggiungi, ripristina o rm.


2
Esattamente ho applicato una scorta. Ora la domanda è: quando usare add, quando resete quando lo uso rm? Ad esempio, non voglio mantenere la versione nascosta ma la versione a monte invece?
Pro Backup

16

Di seguito ha funzionato per me

git reset HEAD

Ho ricevuto il seguente errore

git stash
src/config.php: needs merge
src/config.php: needs merge
src/config.php: unmerge(230a02b5bf1c6eab8adce2cec8d573822d21241d)
src/config.php: unmerged (f5cc88c0fda69bf72107bcc5c2860c3e5eb978fa)

Poi ho corso

git reset HEAD

ha funzionato


4

Non credo di eseguire

 git rm first_file.txt

è una buona idea.

  1. quando git nota che i tuoi file non sono uniti, dovresti assicurarti di averlo eseguito.

  2. E quindi apri il file di conflitto:

    cat first_file.txt

  3. risolvere il conflitto

4.

git add file

git commit -m "fix conflict"

5. git push

dovrebbe funzionare per te.


1

Nel mio caso, ho scoperto che ho bisogno dell'opzione -f. Come il seguente:

git rm -f first_file.txt

per eliminare l'errore "ha bisogno di unire".


0

ho risolto facendo di seguito 2 semplici passaggi:

passaggio 1: git reset Head passaggio 2: git add.

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.