aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlessandro Iezzi <aiezzi@alessandroiezzi.it>2022-06-22 15:35:09 +0200
committerAlessandro Iezzi <aiezzi@alessandroiezzi.it>2022-06-22 15:35:09 +0200
commit93eb9ac0bb372a61cb14ed090c262fd14bd1d525 (patch)
tree4881b77d04afe7d3413eab30e6822a6bc766b5aa
parent5f8b72be6999b6d17e96a9c307c0506b39738372 (diff)
downloadwebsite-93eb9ac0bb372a61cb14ed090c262fd14bd1d525.tar.gz
website-93eb9ac0bb372a61cb14ed090c262fd14bd1d525.zip
Add new section to git doc
-rw-r--r--docs/git/git.rhtml39
1 files 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 @@
<h2>Effettuare una diff su un'unica riga</h2>
<p>Invece di mostrare due linee per ogni cambiamento, Git permete di
evidenziarli esplicitamente su una riga:</p>
-<pre>git diff --word-diff nome_file</pre>
+<pre class="bordered">git diff --word-diff nome_file</pre>
<h2>blame prima di una specifica commit</h2>
-<pre>git blame id_commit~1 -- nome_file</pre>
+<pre class="bordered">git blame id_commit~1 -- nome_file</pre>
<h2>Rimuovere i vecchi branch remoti eliminati sul server</h2>
<p>Se sul server non risultano pi&ugrave; dei branch, &egrave; possibile
@@ -42,3 +42,38 @@
<p>Ci si pu&ograve; arrivare eseguendo il comando qui sotto che mostra tutti i
branch che contengono quella commit:</p>
<pre>git branch --contains &lt;commit&gt;</pre>
+
+<h2>cgit: il branch predefinito</h2>
+<p>Si immagini di avere tre branch: <i>master</i>, <i>svil</i> e <i>test</i>.
+ Tutto lo sviluppo viene effettuato sul branch <i>svil</i> e <i>master</i> si
+ trova notevolmente indietro. Su GitHub, tramite l'interfaccia web, si
+ pu&ograve; impostare qualsiasi altro branch predefinito al posto di
+ <i>master</i>, ma se il server &egrave; gestito tramite cgit, come si
+ pu&ograve; eliminare il branch <i>master</i>?</p>
+
+<p>Non &egrave; poi cos&igrave; difficile, basta entrare nel repository, ad
+ esempio <i>repo.git</i>, nel quale ci saranno i calssici file:</p>
+<pre class="bordered">branches
+config
+description
+HEAD
+hooks
+info
+objects
+refs</pre>
+<p>Il contenuto di <i>HEAD</i> dovrebbe essere qualcosa come:</p>
+<pre class="bordered">ref: refs/heads/master</pre>
+<p>Come si pu&ograve; notare, punta a <i>master</i>. Evitare di modificarlo a
+ mano ed eseguire il comando git usando l'argomento <i>symbolic-ref</i>:</p>
+<pre class="bordered">$ git symbolic-ref HEAD refs/heads/test</pre>
+<p>Se non si ha intenzione di ripristinare il branch predefinito su
+ <i>master</i>, bisognerebbe eseguire il symbolic-ref anche nella copia locale
+ del repository. Da adesso in avanti, cgit user&agrave; <i>test</i> come branch
+ predefinito, anche quando si effettuer&agrave; un clone.</p>
+<p>Per procedere alla rimozione del branch <i>master</i>, si esegue il solito
+ comando di eliminazione:</p>
+<pre class="bordered">$ git branch -d master
+$ git push origin :master
+</pre>
+<p>O se si preferisce, il secondo comando pu&ograve; essere sostituito con:</p>
+<pre class="bordered">$ git push --delete origin master</pre>