2010-10-15 4 views
5

Sto eseguendo msysgit 1.7.3.1. Se eseguo lo stash apply, e c'è un conflitto, tutte le mie modifiche di stash vengono messe in scena. È questo il comportamento corretto? L'ho trovato un poco sorprendente.git stash domande

Un'altra domanda: se ho messo da parte 10 file, e non v'è un conflitto in una delle loro, sarà riporre applicare abortire quando si ha un conflitto, ovvero riguardi tutti file non in conflitto.

Infine, se faccio la seguente:

git stash 
git pull 
git stash apply 

e un altro sviluppatore ha rimosso un file che ho messo da parte, quindi non sono in grado di applicare la scorta su questo file. Come posso recuperare le mie modifiche dalla scorta?

Grazie!

+0

Link a coloro che sono interessati: http://article.gmane.org/gmane.comp.version-control.git/159136 – alternative

risposta

6

l'indice viene utilizzato per indicare che questi file non hanno conflitti. I tuoi file in conflitto non dovrebbero essere nell'indice.

re i 10 file. Stash aggiungerà i restanti 9 all'indice. Risolvi il conflitto nel file rimanente. Aggiungilo all'indice. Quindi commetti.

re le modifiche dalla memoria mancante. Puoi ottenere il tuo file facendo un checkout git (stash-SHA1 o altro riferimento ad esso>) - filespecification

puoi anche cambiare il tuo stash in un ramo che puoi poi fare checkout e fare più cose con.

speranza che questo aiuta

+2

OK, ho capito. L'indice è usato per tracciare file che non hanno conflitti. Tuttavia, il mio flusso di lavoro è normalmente il seguente: – Jacko

+3

il mio flusso di lavoro è normalmente simile a questo: 1) lavorando su qualcosa, quindi la directory di lavoro è sporca 2) vuoi estrarre le modifiche di qualcuno 3) stoccaggio 4) pull 5) stash apply 6 continua a lavorare. Di solito non sono pronto a eseguire il commit dopo l'applicazione stash, è per questo che mettere in scena i miei file stash è inaspettato. – Jacko

+1

E grazie per la spiegazione, btw. – Jacko