$ git init $ git config --global user.email "email@example.com" $ git config --global user.name "Nome utente" # Mostra i comandi più comuni $ git help # Mostra tutti i comandi disponibili $ git help -a # Documentazione di un comando specifico # git help $ git help add $ git help commit $ git help init # oppure git --help $ git add --help $ git commit --help $ git init --help $ echo "temp/" >> .gitignore $ echo "privato.txt" >> .gitignore $ git status # Aggiunge un file nella directory attuale $ git add HelloWorld.java # Aggiunge un file in una sottocartella $ git add /path/to/file/HelloWorld.c # Il comando supporta le espressioni regolari $ git add ./*.java # Aggiunge tutti i file non ancora contrassegnati $ git add --all # Visualizza i branch e i remote $ git branch -a # Crea un nuovo branch $ git branch nuovoBranch # Elimina un branch $ git branch -d nomeBranch # Rinomina un branch $ git branch -m nomeBranch nuovoNomeBranch # Permette di modificare la descrizione di un branch $ git branch nomeBranch --edit-description # Visualizza i tag esistenti $ git tag # Crea un nuovo tag # L'opzione -m consente di specificare una descrizione per il tag. # Se l'opzione -m non viene aggiunta, Git aprirà un editor per consentire # l'inserimento del messaggio. $ git tag -a v2.0 -m 'Versione 2.0' # Mostra informazioni relative a un tag # Include informazioni sul creatore del tag, la data di creazione, e il # messaggio assegnato al tag oltre alle informazioni sul commit. $ git show v2.0 # Effettua il checkout di un repository - il branch predefinito è 'master' $ git checkout # Effettua il checkout di un branch specifico $ git checkout nomeBranch # Crea un nuovo branch e ne effettua il checkout # Equivalente a "git branch ; git checkout " $ git checkout -b nuovoBranch # Clona learnxinyminutes-docs $ git clone https://github.com/adambard/learnxinyminutes-docs.git # Clona solo l'ultima revisione di un repository $ git clone --depth 1 https://github.com/adambard/learnxinyminutes-docs.git # Clona solo un branch specifico $ git clone -b master-cn https://github.com/adambard/learnxinyminutes-docs.git --single-branch # Crea un nuovo commit con un messaggio $ git commit -m "Aggiunta la funzione multiplyNumbers() in HelloWorld.c" # Aggiunge (git add) automaticamente i file modificati o eliminati (ESCLUSI # i nuovi file) e quindi effettua il commit $ git commit -a -m "Modificato foo.php e rimosso bar.php" # Modifica l'ultimo commit (il comando elimina il commit precedente e lo # sostituisce con uno nuovo) $ git commit --amend -m "Messaggio corretto" # Mostra la differenza tra il working tree e l'index $ git diff # Mostra la differenza tra l'index e il commit più recente $ git diff --cached # Mostra la differenza tra il working tree e un commit specifico $ git diff # Mostra la differenza tra due commit $ git diff # Cerca "variableName" nei file Java $ git grep 'variableName' -- '*.java' # Cerca una riga contenente "arrayListName" E "add" oppure "remove" $ git grep -e 'arrayListName' --and \( -e add -e remove \) # Mostra il numero delle righe $ git config --global grep.lineNumber true # Rende i risultati più leggibili $ git config --global alias.g "grep --break --heading --line-number" # Mostra tutti i commit $ git log # Mostra ogni commit su una sola riga $ git log --oneline # Mostra solo i commit legati ai merge $ git log --merges # Unisce il branch specificato a quello attuale $ git merge nomeBranch # Genera un commit in ogni caso dopo aver eseguito il merge $ git merge --no-ff nomeBranch # Rinomina un file $ git mv HelloWorld.c HelloNewWorld.c # Sposta un file $ git mv HelloWorld.c ./new/path/HelloWorld.c # Forza l'esecuzione del comando # Se un file "nuovoNomeFile" esiste già nella directory, verrà sovrascritto $ git mv -f nomeFile nuovoNomeFile # Aggiorna il branch attuale dal remote "origin" $ git pull # Di default, git pull aggiorna il branch attuale effettuando il merge # delle nuove modifiche presenti nel branch remote-tracking corrispondente $ git pull # Aggiorna le modifiche dal branch remoto, quindi effettua il rebase dei commit # nel branch locale # Equivalente a: "git pull ; git rebase " $ git pull origin master --rebase # Invia ed effettua il merge delle modifiche dal branch "master" # al remote "origin". # git push $ git push origin master # Di default, git push invia ed effettua il merge delle modifiche # dal branch attuale al branch remote-tracking corrispondente $ git push # Per collegare il branch attuale ad uno remoto, basta aggiungere l'opzione -u $ git push -u origin master $ git stash $ git pull $ git stash apply $ git status $ git stash list # Effettua il rebase di experimentBranch in master $ git rebase master experimentBranch # Effettua il reset della staging area (annullando le aggiunte e le rimozioni # di file dal repository, senza modificare il working tree) $ git reset # Effettua il reset completo della staging area, ovvero annulla qualsiasi # modifica al repository eliminando definitivamente anche tutte le modifiche # ai file non inviate e ripristinando il working tree $ git reset --hard # Effettua il reset del branch attuale al commit specificato (lasciando il # working tree intatto) $ git reset 31f2bb1 # Effettua il reset completo del branch attuale al commit specificato, # eliminando qualsiasi modifica non inviata $ git reset --hard 31f2bb1 # Elimina un file nella directory attuale $ git rm HelloWorld.c # Elimina un file da una sottocartella $ git rm /pather/to/the/file/HelloWorld.c