Cheatsheet per Git in italiano

Published at February 15, 2021 – 5 min read

Git è uno degli strumenti SCM più popolari. Può essere utilizzato per progetti grandi e piccoli ed è indipendente dai tipi di contenuto nei progetti. In effetti, usiamo git per gestire i contenuti dei capitoli di questo libro.

Git è diverso da altri strumenti SCM perché è distribuito, il che significa che non esiste un repository di codice centrale. Per questo motivo, git è diventato molto popolare per lo sviluppo di ciò che è noto come software libero e open source, o FOSS. La filosofia alla base di un sistema decentralizzato è che resiliente a un singolo punto di errore, il che aiuta a garantire che le biblioteche FOSS rimangano aperte e libere.

ComandiDescrizione
git initavvia git nella directory corrente
git clone <indirizzo>crea un repo git da un dato indirizzo (ottieni l’indirizzo dal tuo git-server)
git clone <indirizzo> -b <nome_branco> <path/to/directory>clona un repo git dall’indirizzo nella directory data e fa il checkout del ramo dato
git clone <indirizzo> -b <nome_ramo> --single-branchClona un singolo ramo
git add file.txtaggiunge (fasi) file.txt al git
git add *aggiunge(stages) tutte le nuove modifiche, cancellazioni, creazioni al git
git reset file.txtRimuove il file.txt dallo stage
git reset --hardRimuove tutte le modifiche non commesse, resetta i file in HEAD
git rm file.txtRimuove il file.txt sia da git che dal file system
git rm --cached file.txtrimuove solo il file.txt sia dall’indice git
git statusmostra le modifiche e le cose che non sono ancora in scena
git branchmostra tutti i rami (il ramo corrente è mostrato con una stella)
git branch my-branchcrea il mio ramo
git branch -d my-branchcancella my-branch
git checkout mio-ramopassa al mio-ramo
git merge my-branchunisce my-branch al ramo corrente
git push origin --delete my-branchelimina il mio ramo remoto
git branch -m <nome del nuovo ramo>rinomina il ramo
git checkout --orfano <nome_ramo>esegue il checkout di un ramo senza storia di commit
git branch -vvelenca tutti i rami e i loro upstream, così come l’ultimo commit sul ramo
git branch -aelenca tutti i rami locali e remoti
git cherry-pick <commit_id>unisce il commit specificato
git cherry-pick <commit_id_A>^..<commit_id_B>seleziona l’intero intervallo di commit dove A è più vecchio di B (la ^ è per includere anche A)
git remotemostra i telecomandi
git remote -vmostra il remoto per pull e push
git remote add my-remote <indirizzo>crea un remoto (prendi l’indirizzo dal tuo git-server)
git remote rm my-remoteRimuove un remoto
git logmostra il log dei commit
git log --onelinemostra il log dei commit, ogni commit in una singola linea
git log -p <nome_file>cambia nel tempo per uno specifico file
git log <Branch1> ^<Branch2>elenca i commit nel branch1 che non sono nel branch2
git log -n <x>elenca gli ultimi x commit
git log -n <x> –onelineelenca gli ultimi x commit, ogni commit in una singola linea
git grep --heading --line-number '<stringa/regex>'Trova le linee corrispondenti al pattern nei file tracciati
git log --grep='<stringa/regex>'Cerca il registro dei commit
git commit -m "msg"commette i cambiamenti con un msg
git commit --amendcombina le modifiche con il commit precedente, o modifica il messaggio di commit precedente senza cambiare il suo snapshot
git commit --amend --no-editmodifica un commit senza cambiare il suo messaggio di commit
git commit --amend --author='Nome Autore <[email protected]>'Modifica l’autore di un commit
git push my-remote my-branchspinge i commit al my-remote nel my-branch (non spinge i tag)
git revert Annulla un commit creando un nuovo commit
git showmostra uno o più oggetti (blob, alberi, tag e commit).
git diffmostra i cambiamenti tra i commit, i commit e l’albero di lavoro
git diff –colormostra i diff colorati
git diff –stagedMostra i cambiamenti in fase di commit
git tagmostra tutti i tag
git tag -a v1.0 -m “msg”crea un tag annotato
git show v1.0mostra la descrizione del tag version-1.0
git tag –delete v1.0cancella il tag nella directory locale
git push –delete my-remote v1.0cancella il tag in my-remote (attenzione a non cancellare un ramo)
git push my-remote my-branch v1.0spinge il tag v1.0 a my-remote in my-branch
git fetch –tagstira i tag da remoto
git pull my-remote my-branchtira e cerca di unire my-branch da my-remote al ramo corrente
git stashmette da parte i cambiamenti messi in scena e non messi in scena (lo stato di git sarà pulito dopo)
git stash -usalva tutto, inclusi i nuovi file non tracciati (ma non .gitignore)
git stash save “msg”salva con un msg
git stash listelenca tutti gli stash
git stash popcancella lo stash recente e lo applica
git stash pop [email protected]{2}cancella lo stash {2} e lo applica
git stash showmostra la descrizione dello stash
git stash applymantiene lo stash e lo applica al git
git stash branch my-branch [email protected]{1}crea un ramo dal tuo stash
git stash drop [email protected]{1}cancella lo stash {1}
git stash clearcancella tutto lo stash
git rebase -i <commit_id>Rebase i commit da un ID di commit
git rebase –abortInterrompe un rebase in corso
git rebase –continueContinua il rebase dopo aver risolto tutti i conflitti
git clean -fpulisce permanentemente i file non tracciati
git clean -f -d/git clean -fdPer rimuovere permanentemente le directory
git clean -f -X/git clean -fXPer rimuovere definitivamente i file ignorati
git clean -f -x/git clean -fxPer rimuovere definitivamente i file ignorati e non ignorati
git config –global –listelenca la configurazione git per tutti i repo
git config –global –editapre un editor per modificare il file git config
git config –global alias. aggiunge alias git per velocizzare il flusso di lavoro, ad esempio se handle è st e il comando è status allora eseguendo git st verrà eseguito git status
Ultimo aggiornamento il April 12, 2021

About

I am a security researcher, a writer, and contributor to the Monero project, a cryptocurrency focused on preserving privacy for transactions data. My publication Mastering Monero has became one of the best rated resources to learn about Monero. More about me

Follow me on Twitter or send me an email. I also appreciate donations, they allow me to continue doing my work and writing.

Mastering Monero book