Errore Git “Please commit your changes or stash them before you merge.”

Quando ci troviamo ad aggiornare la copia di lavoro locale con Git, usando il comando git fetch  o git pull , spesso ci troviamo di fronte all’errore [..] Please commit your changes or stash them before you merge.[..].

Git ci sta dicendo che il nostro lavoro locale è andato avanti rispetto a quello remoto e che ci potrebbero essere delle perdite. Come possiamo vedere, Git stesso ci consiglia di fare un commit o uno stash e riprovare ad eseguire il comando.

Se invece volessimo scartare le modifiche locali, e forzare la copia locale a sincronizzarsi a quella remote?  Possiamo usare una combinazione di comandi:

Attenzione: questo comando potrebbe farvi perdere le modifiche locali delle quali non avete fatto il commit!

Eseguendo questi comandi, prima scarichiamo dal server le ultime modifiche con git fetch , poi, portiamo il puntatore interno di Git allo stato precedente (cioè l’ultimo commit salvato) e poi effettuiamo una pulizia di tutti i file (e directory) non tracciati.

 

Gestire i rami (branch) in Bitbucket

Cosa sarebbe Git senza le ramificazioni? Esistono molti tool online per la gestione dei repository, e sicuramente BitBucket è uno dei più apprezzati. Quando lavoriamo sulla nostra macchina, però, dobbiamo sincronizzare i rami locali con i rami remoti per rendere tutto più efficace. Esistono due modi principali per creare dei branch in Git e poi sincronizzarli (eseguendo un push origin) con il server remoto di BitBucket. Vediamoli.

Creare un ramo in Bitbucket

  1. Andiamo nella pagina del nostro Repository, in alto clicchiamo su Create branch
  2. Dalla schermata successiva, selezionare il ramo di partenza (solitamente, master) e il nome del nuovo ramo, clicca su Create
  3. A questo punto il branch, in remoto, verrà creato. La nostra copia locale del progetto, però, non lo sa ancora. Sincronizziamola con un git fetch :
  4. Proviamo ora a cambiare un file di lavoro e ad eseguire un git push :
  5. Fatto.

Creare un ramo locale

La seconda opzione è quella di creare un branch in locale e successivamente eseguire un git push. Ovviamente il repository su cui state lavorando deve già essere associato ad un repository BitBucket.

  1. Per prima cosa, creiamo il ramo:
  2. Spostiamoci sul ramo appena creato:
  3. A questo punto, proviamo a cambiare qualche file ed effettuiamo un commit , seguito da un git push :
  4. Fatto.

Verifichiamo che il branch ci sia

Dalla pagina del nostro Repository su BitBucket, verifichiamo che il ramo appena creato sia presente tra i branch:

Ti interessa Git? Consulta la nostra guida a Git.