Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git subtree add --prefix=<path> <repo> <ref> [--squash]
git subtree pull --prefix=<path> <repo> <ref>
git subtree push --prefix=<path> <repo> <ref>
git subtree split --prefix=<path> -b <new-branch>

Descrizione

Il comando git subtree è un'alternativa ai submodule che mergia il contenuto di un altro progetto direttamente in una sottodirectory del tuo repo.

Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git submodule add <url> <path>
git submodule update --init --recursive
git submodule foreach <cmd>

Descrizione

Il comando git submodule incorpora un repository Git esterno dentro un altro a un commit fisso. Il repo padre registra l'URL del submodule e lo SHA esatto da cui fare checkout, disaccoppiando le storie di padre e figlio. Questo è utile per il vendoring di librerie condivise o per comporre sistemi multi-repo.

Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git worktree add <path> [<branch>]
git worktree list
git worktree remove <path>
git worktree prune

Descrizione

Il comando git worktree permette a un singolo repository di avere più working tree checkoutate simultaneamente, ognuna su un branch diverso. Questo è più veloce ed economico che clonare più volte: un solo database degli oggetti, ma checkout paralleli.

Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git filter-repo --path <path> [--invert-paths]
git filter-repo --replace-text <file>
git filter-repo --strip-blobs-bigger-than 10M

Descrizione

Lo strumento git filter-repo è il modo moderno e raccomandato per riscrivere la storia Git. Sostituisce il deprecato git filter-branch, che è lento e soggetto a errori.

Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git rebase -i <upstream>
git rebase -i --root

Descrizione

Il rebase interattivo apre un editor con la lista dei commit da rebasare, ognuno preceduto da un'azione: pick, reword, edit, squash, fixup, drop, exec o break. Modificando questa lista, puoi riordinare, combinare, dividere o rimuovere commit prima che vadano upstream. È il cavallo di battaglia di "pulire la storia prima di pushare".

Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git cherry-pick [-n] [-x] [--continue] [--abort] <commit>...

Descrizione

Il comando git cherry-pick applica le modifiche introdotte da uno o più commit esistenti sul branch corrente come nuovi commit. È lo strumento giusto quando hai bisogno di un singolo fix da un altro branch senza mergiare l'intero branch. I cherry-pick creano nuovi commit con nuovi SHA ma preservano l'autore originale e il messaggio.

Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git describe --tags --dirty --always [--match 'v[0-9]*']

Descrizione

Questa pagina copre git describe da un'angolatura di versioning: come progettare uno schema di tag che guida stringhe di versione di build riproducibili. L'output di git describe è ampiamente usato dai sistemi di build (Make, CMake, Cargo, script npm) per generare una stringa di versione che include un tag base più distanza e SHA.

Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git tag [-a] [-s] [-m <msg>] <name> [<commit>]
git tag -l ['<pattern>']
git tag -d <name>

Descrizione

Il comando git tag marca commit specifici con un nome memorizzabile, tipicamente usato per le release. Ci sono due tipi di tag: lightweight (solo un puntatore nominato) e annotated (un oggetto Git completo con autore, data, messaggio e firma GPG opzionale). Per le release, crea sempre tag annotated — portano i metadati che la gestione delle release richiede.

Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git apply [--check] [--index] [--3way] <patch>...

Descrizione

Il comando git apply applica un diff unificato (un file di patch) alla working tree, all'index o ad entrambi. A differenza di git am, che si aspetta una patch in formato mailbox completo con metadati di autore e messaggio, git apply applica solo il contenuto del diff. È utile per applicare patch ricevute via email, strumenti di code review o generate da git diff.

Da Anonimo (non verificato) , 29 Aprile 2026

Sinossi

git stash [push [-m <msg>] [-u]]
git stash pop [<stash>]
git stash list
git stash drop [<stash>]

Descrizione

Il comando git stash mette da parte modifiche non committate (sia in working tree che in index) e riporta la working tree a uno stato pulito. Le modifiche messe da parte sono memorizzate su uno stack che puoi riapplicare dopo. Stash è perfetto per situazioni come "devo cambiare branch ma il mio lavoro non è pronto da committare".