Articolo originale: Git Checkout – How to Checkout a File from Another Branch

Mentre lavori su un repository in Git, potresti avere necessità di estrarre uno specifico file da un branch e spostarlo in un altro branch (in gergo, eseguire il checkout di un file in un altro branch).

Fortunatamente, Git offre molti possibili modi per fare questa attività rapidamente. Una delle soluzioni più semplici è usare il comando git checkout con un file specifico come argomento.

In questo articolo, analizzeremo differenti soluzioni a questo problema e approfondiremo le procedura che dovrai seguire per ciascuna.

Partiamo! 😎.

Casi d'uso di git checkout

Stai lavorando su un branch, chiamato feature/A, contenente un file denominato utils.js.

Hai anche un altro branch, chiamato feature/B con un file aggiornato utils.js.

Vuoi effettuare il checkout di questo file e portarlo dal branch chiamato feature/B al branch chiamato feature/A.

Ci sono tre possibili soluzioni per questo compito.

Soluzione 1: Usare il comando git checkout

Il comando git checkout offre un modo semplice per prendere un file o una cartella da un altro branch.

Qui viene riportato il codice per eseguire il checkout di un file da un altro branch:

git checkout <nome-altro-branch> -- percorso/del/file/

Ecco la procedura da seguire:

  1. Esegui il checkout del branch dove vuoi copiare il file.
git checkout feature/A

2. Una volta che sei nel branch corretto, copia il file.

git checkout feature/B -- utils.js

3. Usa il comando git status per assicurarti che il file sia stato copiato.

4. Esegui il commit e il push a un branch remoto.

Quando usi il comando checkout, puoi anche ottenere:

  • Una cartella da un altro branch.
  • File multipli specificando ciascuno di questi.

Inoltre, considera che puoi anche estrarre un file/cartella dallo stash.

Soluzione 2: Usa il comando git restore

Un'altra opzione è utilizzare il comando git switch insieme al comando git restore.

Se non hai mai sentito di questi due comandi, è tutto a posto. Sono relativamente nuovi. Git li ha introdotti nella versione 2.23 del 2019.

La funzione di questi due comandi è separare le responsabilità del comando git checkout per semplificarne l'utilizzo per gli utenti.

Il comando git restore ripristina l'albero di lavoro.

Il comando git switch passa da un branch all'altro.

Questa è la procedura da seguire per prendere un file da un altro branch:

1. Passa al branch dove vuoi inserire il file.

git switch feature/A

2. Prendi il file dall'altro branch.

git restore --source feature/B -- utils.js

3. Esegui il commit e il push dei cambiamenti.

Soluzione 3: Usa il comando git show

Per ultimo, possiamo usare il comando git show .

Qui è riportata la procedura da seguire:

1. Passa al branch di lavoro.

git switch feature/A

2. Prendi il file dall'altro branch

git show feature/B:path/utils.js > path/utils.js

3. Esegui il commit e il push dei cambiamenti.

Nota: questa volta devi specificare il percorso relativo dalla root della tua directory.

Considerazioni finali

Come puoi vedere, prendere un file da un altro branch non è così complicato.

Quando devo farlo nella mia vita di tutti i giorni, di solito uso il comando git checkout.

Image

Visita il mio blog se sei interessato a scoprire di più su Git o sulle tecnologie usate nello sviluppo Web, come TypeScript.

Grazie per aver letto questo articolo.