Ecco la mia strategia per risolvere il problema.
Dichiarazione problema
Dobbiamo apportare modifiche in più di 10 file. Ci abbiamo provato PULL (git pull origin master)
, ma Git ha gridato:
errore: le modifiche locali ai seguenti file verrebbero sovrascritte dall'unione: Si prega di confermare le modifiche o di nasconderle prima di poterle unire.
Abbiamo provato a eseguire commit
e quindipull
, ma non hanno funzionato neanche.
Soluzione
Eravamo sporchi realtà fase , perché i file erano nella "Area di gestione temporanea" alias "Area indice" e alcuni erano nella "Area principale" alias "directory Git locale". E volevamo estrarre le modifiche dal server.
Controlla questo link per informazioni sulle diverse fasi di Git in modo chiaro: GIT Stages
Abbiamo seguito i seguenti passaggi
git stash
(Questo ha reso la nostra directory di lavoro pulita. Le tue modifiche sono archiviate nello stack da Git).
git pull origin master
(Estrai le modifiche dal server)
git stash apply
(Applicate tutte le modifiche dallo stack)
git commit -m 'message'
(Commesso i cambiamenti)
git push origin master
(Ha inviato le modifiche al server)
git stash drop
(Rilascia la pila)
Capiamo quando e perché è necessario riporlo
Se sei nello stato sporco , significa che stai apportando modifiche ai tuoi file e quindi sei costretto, per qualsiasi motivo, a tirare o passare a un altro ramo per un lavoro molto urgente, quindi a questo punto non puoi tirare o passare fino a quando non si impegna la modifica. Il stash
comando è qui come una mano.
Dal libro ProGIT , 2nd Edition:
Spesso, quando hai lavorato su una parte del tuo progetto, le cose sono in uno stato disordinato e vuoi cambiare un po 'i rami per lavorare su qualcos'altro. Il problema è che non vuoi impegnarti a metà del lavoro solo per tornare più tardi a questo punto. La risposta a questo problema è il comando git stash. Lo stashing prende lo stato sporco della directory di lavoro, ovvero i file tracciati modificati e le modifiche graduali, e lo salva su una serie di modifiche non completate che è possibile riapplicare in qualsiasi momento.