È uno strumento per il controllo di versione creato da Linus Torvalds nel 2005.
Invece di mostrare due linee per ogni cambiamento, Git permete di evidenziarli esplicitamente su una riga:
git diff --word-diff nome_file
git blame id_commit~1 -- nome_file
Se sul server non risultano più dei branch, è possibile rimuoverli localmente usando il seguente comando:
git fetch origin --prune
git branch --merged master
mostra i branch mergiati su
mastergit branch --merged
mostra i branch mergiati su HEADgit branch --no-merged
mostra i branch che non sono stati
ancora mergiati-a
mostra sia i branch locali che remoti, e il flag -r
mostra solo
i branch remoti.
Si suppone di avere un branch develop e un branch feature, si vuole sapere quali commit sono presenti in develop che non sono presenti in feature:
git log --oneline develop ^feature
oppure:
git log feature..develop
Da notare che i due branch sono invertiti rispetto al primo comando
Ci si può arrivare eseguendo il comando qui sotto che mostra tutti i branch che contengono quella commit:
git branch --contains <commit>
Si immagini di avere tre branch: master, svil e test. Tutto lo sviluppo viene effettuato sul branch svil e master si trova notevolmente indietro. Su GitHub, tramite l'interfaccia web, si può impostare qualsiasi altro branch predefinito al posto di master, ma se il server è gestito tramite cgit, come si può eliminare il branch master?
Non è poi così difficile, basta entrare nel repository, ad esempio repo.git, nel quale ci saranno i calssici file:
branches config description HEAD hooks info objects refs
Il contenuto di HEAD dovrebbe essere qualcosa come:
ref: refs/heads/master
Come si può notare, punta a master. Evitare di modificarlo a mano ed eseguire il comando git usando l'argomento symbolic-ref:
$ git symbolic-ref HEAD refs/heads/test
Se non si ha intenzione di ripristinare il branch predefinito su master, bisognerebbe eseguire il symbolic-ref anche nella copia locale del repository. Da adesso in avanti, cgit userà test come branch predefinito, anche quando si effettuerà un clone.
Per procedere alla rimozione del branch master, si esegue il solito comando di eliminazione:
$ git branch -d master $ git push origin :master
O se si preferisce, il secondo comando può essere sostituito con:
$ git push --delete origin master