2014-05-12 13 views
28

Come dice il titolo, sto provando a prelevare da un repository git che sto condividendo tra il mio amico e io e io possiamo commettere, lui può commettere, ma quando uno dei due noi tentiamo di farlo tornare indietro che ha fallito: DIRTY_WORKTREEEclipse/Git - Pull Failed Dirty Worktree

Entrambi siamo estremamente nuovi a git, e hanno la direzione zero su come risolvere questo problema.

+0

sto affrontando lo stesso problema, quando provo a tirare fallisce e mostra il messaggio "DIRTY_WORKTREE login". – Dev

+3

potresti cancellare quei file extra menzionati nel messaggio? (Come ho menzionato in http://stackoverflow.com/a/15476133/6309) – VonC

+0

hey @VonC ho seguito i passaggi come citato nel link precedente ma non mi ha aiutato.plz dare un'occhiata al mio problema .. .link :: http://stackoverflow.com/questions/23602895/best-practice-for-using-egit-with-an-app-engine-connected-android-project-in-ecl – Dev

risposta

9

Un altro approccio, se non si dispone di lavori in corso, è provare e ripristinare --hard il tuo HEAD.

Con EGit: Resetting your current HEAD:

Selezionare Team -> Reset... su un progetto. Si apre una finestra di dialogo in cui è possibile selezionare un ramo o un tag.

reset HEAD sul ramo corrente, al fine di ripristinare indice e albero di lavoro fino all'ultimo commit di detto ramo.

Quindi prova la tua attrazione.

+0

Nel caso in cui qualcun altro abbia un problema simile - stavo ottenendo lo stesso errore in Eclipse - ma non in 'SourceTree'. I file erano stati inseriti in 'SourceTree', ma nel tentativo di eseguire un pull degli stessi file non modificati in Eclipse - stavo ottenendo lo stesso errore. Ho provato il> team -> reset (Grazie a VonC) e le cose sono tornate alla normalità! – JGlass

10

Sono stato in grado di risolvere un problema simile utilizzando il client della riga di comando git. Mentre eclipse (egit) stava solo dicendo DIRTY_WORKTREE, nella riga di comando ho visto più file in conflitto. Usando git merge master dalla riga di comando, ho potuto facilmente risolvere i conflitti poi in eclissi. Quindi per me questo sembra essere un problema di egit.

0

In eclissi sono andato a Team Synchronizing View e da lì a destra ho cliccato sul mio progetto e ho premuto 'sovrascrivi' per sovrascrivere tutte le modifiche locali. Quindi riprova la fusione.

-1

Penso che questo problema sia causato dalla versione di EGit. Quando ho utilizzato Spring Tools Suite con EGit 2.6, ho riscontrato anche gli stessi problemi.

EGit è incluso nel pacchetto predefinito STS, pertanto l'aggiornamento di EGit è molto difficile.

Attualmente sto usando Eclipse WTP con EGit 3.7, questo problema è scomparso.

6

Ho avuto modifiche non accettate. Dopo che li ho commessi, quindi uniti, il problema del worktree sporco è scomparso.

0

Solo per aggiungere un altro caso, ho DIRTY_WORKTREE, sono l'unico che si impegna nel mio progetto Github, quindi in EGit ho fatto un ramo Push ... con "Forza sovrascrittura del ramo su remoto se esiste ed è diverguto "

PERICOLO: se altri stanno lavorando sullo stesso progetto, questa azione cancellerà i loro commit dalla divergenza.

0

Ho avuto un problema simile su Eclipse con modifiche non modificate come ununiform. Dopo un commit potrei unire e tutto è tornato come dovrebbe essere. Dai un'occhiata al codice sorgente e controlla le eventuali modifiche. Se nessuno è in grado di ripristinare hard.

0

Basta eliminare .gitignore presente nella cartella del progetto e quindi unire. L'unione mostrerà i conflitti, che è necessario risolvere e quindi spingere le modifiche.

1

Sembra che la versione in cui ci si trova ora abbia modifiche che non sono state ancora eseguite. Quindi devi rimuovere queste modifiche o impegnarle. Nota che se li impegni, potresti ottenere conflitti di fusione.