From 93eb9ac0bb372a61cb14ed090c262fd14bd1d525 Mon Sep 17 00:00:00 2001 From: Alessandro Iezzi Date: Wed, 22 Jun 2022 15:35:09 +0200 Subject: Add new section to git doc --- docs/git/git.rhtml | 39 +++++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/docs/git/git.rhtml b/docs/git/git.rhtml index f2a3e18..d72c01f 100644 --- a/docs/git/git.rhtml +++ b/docs/git/git.rhtml @@ -4,10 +4,10 @@

Effettuare una diff su un'unica riga

Invece di mostrare due linee per ogni cambiamento, Git permete di evidenziarli esplicitamente su una riga:

-
git diff --word-diff nome_file
+
git diff --word-diff nome_file

blame prima di una specifica commit

-
git blame id_commit~1 -- nome_file
+
git blame id_commit~1 -- nome_file

Rimuovere i vecchi branch remoti eliminati sul server

Se sul server non risultano più dei branch, è possibile @@ -42,3 +42,38 @@

Ci si può arrivare eseguendo il comando qui sotto che mostra tutti i branch che contengono quella commit:

git branch --contains <commit>
+ +

cgit: il branch predefinito

+

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
-- cgit v1.2.3