<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>G.R.Y.S. &#187; Git</title>
	<atom:link href="http://www.grys.it/index.php/tag/git/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.grys.it</link>
	<description>...giusto per divertirsi</description>
	<lastBuildDate>Sun, 29 Jan 2012 23:12:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Merge con git</title>
		<link>http://www.grys.it/index.php/2010/10/merge-con-git/</link>
		<comments>http://www.grys.it/index.php/2010/10/merge-con-git/#comments</comments>
		<pubDate>Tue, 05 Oct 2010 20:22:04 +0000</pubDate>
		<dc:creator>gian</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://www.grys.it/?p=883</guid>
		<description><![CDATA[Questo è più che altro un promemoria per me.
Per mergiare due (o più ) repository git remoti in un repository locale, basta usare questi comandi:
git remote add [nome] [URL pubblico per il comando clone]
git pull [nome] master
git push

Ovviamente basta una ricerchina su google per trovarlo
]]></description>
			<content:encoded><![CDATA[<p>Questo è più che altro un promemoria per me.</p>
<p>Per mergiare due (o più ) repository git remoti in un repository locale, basta usare questi comandi:</p>
<pre>git remote add [nome] [URL pubblico per il comando clone]
git pull [nome] master
git push
</pre>
<p>Ovviamente basta una ricerchina su google per trovarlo</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grys.it/index.php/2010/10/merge-con-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cancellare un branch/tag con Git</title>
		<link>http://www.grys.it/index.php/2010/01/cancellare-un-branchtag-con-git/</link>
		<comments>http://www.grys.it/index.php/2010/01/cancellare-un-branchtag-con-git/#comments</comments>
		<pubDate>Tue, 26 Jan 2010 15:55:22 +0000</pubDate>
		<dc:creator>gian</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://www.grys.it/?p=749</guid>
		<description><![CDATA[Come posso rimuovere un branch o un tag anche da server con Git ?
Usando semplicemente il comando
git branch -d -r origin/qualche_branch
lo si cancella fino al successivo pull
Per rimuoverlo definitivamente si deve usare il comando
git push origin :qualche_branch
in questo modo lo si elimina definitivamente

]]></description>
			<content:encoded><![CDATA[<p>Come posso rimuovere un branch o un tag anche da server con Git ?<br />
Usando semplicemente il comando</p>
<pre>git branch -d -r origin/qualche_branch</pre>
<p>lo si cancella fino al successivo pull</p>
<p>Per rimuoverlo definitivamente si deve usare il comando</p>
<pre><code>git push origin :qualche_branch</code></pre>
<p>in questo modo lo si elimina definitivamente</p>
<pre><code></code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.grys.it/index.php/2010/01/cancellare-un-branchtag-con-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creare un nuovo repository git remoto</title>
		<link>http://www.grys.it/index.php/2008/07/creare-un-nuovo-repository-git-remoto/</link>
		<comments>http://www.grys.it/index.php/2008/07/creare-un-nuovo-repository-git-remoto/#comments</comments>
		<pubDate>Tue, 08 Jul 2008 12:03:16 +0000</pubDate>
		<dc:creator>gian</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://www.grys.it/?p=245</guid>
		<description><![CDATA[Piccolo corso su come creare un nuovo repository git su server remoto.
Prima di tutto si crea la directory che contiene il progetto in locale e si inizializza
mkdir test_project
cd test_project
git init
git remote add origin git@YOUR_SERVER_HOSTNAME:test_project.git
A questo punto si può lavorare nella directory come al solito.
Quando si decide di aver finito, si aggiungono i file con
git add [...]]]></description>
			<content:encoded><![CDATA[<p>Piccolo corso su come creare un nuovo repository git su server remoto.</p>
<p>Prima di tutto si crea la directory che contiene il progetto in locale e si inizializza</p>
<pre>mkdir test_project
cd test_project
git init
git remote add origin git@YOUR_SERVER_HOSTNAME:test_project.git</pre>
<p>A questo punto si può lavorare nella directory come al solito.</p>
<p>Quando si decide di aver finito, si aggiungono i file con</p>
<pre>git add .</pre>
<p>e si committa tutto il lavoro</p>
<pre>git commit -a</pre>
<p>e poi si esegue il push con</p>
<pre>git push origin master:refs/heads/master</pre>
<p>e da qui il repository è pronto.</p>
<p>Questo approccio si può usare anche per importare dei sorgenti, basta scompattarli, entrare nella directory e dare il comando</p>
<pre>git init</pre>
<p>e poi seguire il resto dei passi.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grys.it/index.php/2008/07/creare-un-nuovo-repository-git-remoto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Spostare un repository git da un server all&#8217;altro&#8230;</title>
		<link>http://www.grys.it/index.php/2008/04/spostare-un-repository-git-da-un-server-allaltro/</link>
		<comments>http://www.grys.it/index.php/2008/04/spostare-un-repository-git-da-un-server-allaltro/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 13:28:07 +0000</pubDate>
		<dc:creator>gian</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://www.grys.it/?p=230</guid>
		<description><![CDATA[&#8230;conservando la storia delle commit.
L&#8217;operazione è banale. Sono 3 semplici passi

Clonare il repository dal vecchio server
      git clone server:repository.git

Cancellare dal file .git/config la sezione [remote "origin"]
Importare nel nuovo server
      git remote add origin utente@server:repository
      git push origin master:refs/heads/master

Ed il gioco [...]]]></description>
			<content:encoded><![CDATA[<p>&#8230;conservando la storia delle commit.</p>
<p>L&#8217;operazione è banale. Sono 3 semplici passi</p>
<ol>
<li>Clonare il repository dal vecchio server
<pre>      git clone server:repository.git</pre>
</li>
<li>Cancellare dal file <em>.git/config</em> la sezione [remote "origin"]</li>
<li>Importare nel nuovo server</li>
<pre>      git remote add origin utente@server:repository</pre>
<pre>      git push origin master:refs/heads/master</pre>
</ol>
<p>Ed il gioco è fatto, buon lavoro</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grys.it/index.php/2008/04/spostare-un-repository-git-da-un-server-allaltro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Gestire un server Git con Gitosis</title>
		<link>http://www.grys.it/index.php/2008/04/gestire-un-server-git-con-gitosis/</link>
		<comments>http://www.grys.it/index.php/2008/04/gestire-un-server-git-con-gitosis/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 10:39:09 +0000</pubDate>
		<dc:creator>gian</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://www.grys.it/?p=229</guid>
		<description><![CDATA[Ora che abbiamo il nostro server attivo, bisogna usarlo. I passi da fare sono i seguenti,  facendo molta attenzione a non fare confusione con le chiavi pubbliche ssh, altrimenti non funziona nulla:
1. clonare il repository gitosis-admin git clone git@SERVER:gitosis-admin.git
2. modificare il file gitosis.conf per aggiungere un blocco simile a quello presente, ad es.
  [...]]]></description>
			<content:encoded><![CDATA[<p>Ora che abbiamo il nostro server attivo, bisogna usarlo. I passi da fare sono i seguenti,  facendo molta attenzione a non fare confusione con le chiavi pubbliche ssh, altrimenti non funziona nulla:</p>
<p>1. clonare il repository gitosis-admin git clone git@SERVER:gitosis-admin.git<br />
2. modificare il file gitosis.conf per aggiungere un blocco simile a quello presente, ad es.</p>
<pre>      [group devel]</pre>
<pre>      writable = vtf QtRegExp</pre>
<pre>      members = gianluca</pre>
<p>3. committare le modifiche e fare il push del repository.</p>
<p>Se si vuole aggiungere una chiave pubblica di un nuovo utente con diritti di scrittura, basta copiare la chiave ssh (pubblica) nella directory keydir, aggiungere il file con git add e poi solita commit e push. Attenzione che il nome del file della chiave indica il nome dell&#8217;utente. Nel caso sopra quindi, avendo abilitato un utente &#8220;gianluca&#8221;, avrà in keydir un file gianluca.pub</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grys.it/index.php/2008/04/gestire-un-server-git-con-gitosis/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nuovo server Git</title>
		<link>http://www.grys.it/index.php/2008/04/nuovo-server-git/</link>
		<comments>http://www.grys.it/index.php/2008/04/nuovo-server-git/#comments</comments>
		<pubDate>Wed, 16 Apr 2008 10:33:52 +0000</pubDate>
		<dc:creator>gian</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Git]]></category>
		<category><![CDATA[Gitosis]]></category>

		<guid isPermaLink="false">http://www.grys.it/?p=228</guid>
		<description><![CDATA[Usando questa ottima guida, mi sono installato un server Git su uno slice comprato da slicehost.
I passi da seguire sono sostanzialmente quelli della guida, con la differenza che non serve installare gitosis dai sorgenti, ma va benissimo il pacchetto debian. I pacchetti minimi da installare sono gitosis e git-core. Dopodiché si possono seguire i passi [...]]]></description>
			<content:encoded><![CDATA[<p>Usando <a href="http://scie.nti.st/2007/11/14/hosting-git-repositories-the-easy-and-secure-way">questa</a> ottima guida, mi sono installato un server Git su uno slice comprato da <a href="http://www.slicehost.com" target="_blank">slicehost</a>.<br />
I passi da seguire sono sostanzialmente quelli della guida, con la differenza che non serve installare gitosis dai sorgenti, ma va benissimo il pacchetto debian. I pacchetti minimi da installare sono <em>gitosis</em> e <em>git-core</em>. Dopodiché si possono seguire i passi della guida, con la differenza che la frase &#8220;Initialized empty Git repository in ./&#8221; per qualche motivo mi è saltata fuori solo due volte. Una volta fatto questo il server è attivo.<br />
In pratica tutto il discorso, sotto Debian Lenny si riduce in questo comando:</p>
<p><code>apt-get install git-core gitosis</code></p>
<p>è anche possibile installare pacchetti aggiuntivi o complementari, ma non sono necessari (tuttavia git-doc è caldamente consigliato).</p>
<p>Al momento sto popolando i repository (contro di trasferirci QtNotes e Vtf per iniziare) e lo userò come repository dei miei sorgenti. Il link lo trovate nel BlogRoll a lato.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grys.it/index.php/2008/04/nuovo-server-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Annnullare una commit con Git</title>
		<link>http://www.grys.it/index.php/2008/03/annnullare-una-commit-con-git/</link>
		<comments>http://www.grys.it/index.php/2008/03/annnullare-una-commit-con-git/#comments</comments>
		<pubDate>Wed, 19 Mar 2008 16:40:33 +0000</pubDate>
		<dc:creator>gian</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://www.grys.it/?p=11</guid>
		<description><![CDATA[Per annullare una commit con git si può usare questa serie di comandi:
git-rev-parse --branch master
che restituisce la lista di commit per il branch master (o il branch indicato) in questa forma:
$ git-rev-parse --branch master
--branch
e17f9112b29b7e4294702188c7005db8d576f18e
A questo punto usando il comando
git revert e17f9112b29b7e4294702188c7005db8d576f18e
si torna indietro. Utile se si fanno danni durante la commit o si sbaglia la [...]]]></description>
			<content:encoded><![CDATA[<p>Per annullare una commit con git si può usare questa serie di comandi:</p>
<pre>git-rev-parse --branch master</pre>
<p>che restituisce la lista di commit per il branch master (o il branch indicato) in questa forma:</p>
<pre>$ git-rev-parse --branch master</pre>
<pre>--branch</pre>
<pre>e17f9112b29b7e4294702188c7005db8d576f18e</pre>
<p>A questo punto usando il comando</p>
<pre>git revert e17f9112b29b7e4294702188c7005db8d576f18e</pre>
<p>si torna indietro. Utile se si fanno danni durante la commit o si sbaglia la descrizione della commit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grys.it/index.php/2008/03/annnullare-una-commit-con-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Lavorare con Git</title>
		<link>http://www.grys.it/index.php/2008/01/lavorare-con-git/</link>
		<comments>http://www.grys.it/index.php/2008/01/lavorare-con-git/#comments</comments>
		<pubDate>Tue, 29 Jan 2008 22:34:57 +0000</pubDate>
		<dc:creator>gian</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false">http://www.grys.it/?p=20</guid>
		<description><![CDATA[Quando si vuole cambiare sistema di gestione dei sorgenti per passare da CVS o SVN a Git, ci si deve preparare ad un impatto con una realtà molto diversa da quella precedente, che all&#8217;inizio si può faticare a comprendere.Visto che ci sono passato, ho pensato di mettere insieme questo breve tutorial per il lavorodi tutti [...]]]></description>
			<content:encoded><![CDATA[<p>Quando si vuole cambiare sistema di gestione dei sorgenti per passare da CVS o SVN a Git, ci si deve preparare ad un impatto con una realtà molto diversa da quella precedente, che all&#8217;inizio si può faticare a comprendere.Visto che ci sono passato, ho pensato di mettere insieme questo breve tutorial per il lavorodi tutti i giorni con Git.Il ciclo di lavoro con Git è  simile a quello di CVS o SVN (se è  per questo di un qualsiasi sistema di questo genere), cioè</p>
<ul>
<li>Update (o checkout) del repository</li>
<li>Modifiche</li>
<li>Commit</li>
</ul>
<p>Le differenze cominciano a farsi notare da subito, visto che i comandi sono diversi anche se questo volendo non è  poi così importante, quindi cominciamo a fare un po&#8217; di esempi seguendo il ciclo di lavoro che abbiamo descritto sopra.</p>
<p><strong>Scaricare un repository</strong></p>
<p>La prima cosa da fare per cominciare a lavorare è  scaricarsi il repository. Con git si usa questo comando:</p>
<pre>git clone git+ssh://repo.or.cz/srv/git/qtodo.git</pre>
<p>(facendo riferimento al mio progetto su quel sito)Questo comando scarica <span style="text-decoration: underline;">l&#8217;intero repository</span>, con tutti i branch e tag. Git è  infatti un version control system distribuito, quindi tutti hanno la copia di tutto il repository.</p>
<p><strong>Lavorare con i sorgenti</strong></p>
<p>Fatto questo  si può cominciare a lavorare sui sorgenti. E qui cominciano a saltare fuori le differenze con sistemi tipo CVS e SVN. Nel caso di CVS ad esempio, se vogliamo lavorare su un certo branch dobbiamo scaricarlo esplicitamente dal server remoto. Nel caso di git invece abbiamo già  tutto. Il comando</p>
<pre>git branch [-r][-a][-d]</pre>
<p>serve a visualizzare l&#8217;elenco dei branch presenti nella nostra copia del repository. Senza opzioni visualizza i branch locali, l&#8217;opzione -r serve a visualizzare i branch remoti, mentre l&#8217;opzione -a serve a visualizzare tutti i branch, locali e remoti.Â  L&#8217;opzione -d serve a cancellare un branch locale oppure un branch remoto se utilizzata insieme all&#8217;opzione -r. Nella lista dei branch, l&#8217;asterisco (*) indica il branch corrente.A questo punto dovrebbe essere chiaro come procedere: con il comando</p>
<pre>git checkout &lt;-b&gt; &lt;branch&gt;</pre>
<p>si passa al branch che interessa. L&#8217;opzione -b è necessaria se è  la prima volta che si esegue lo switch al branch desiderato, altrimenti non deve essere utilizzato Altre operazioni possibili sui branch sono la creazione di un nuovo branch con i comandi:</p>
<pre>git branch nome_branch &lt;branch di riferimento&gt;</pre>
<pre>git checkout nome_branch</pre>
<p>dove si crea il nuovo branch <em>nome_branch</em>, utilizzando eventualmente come base il <em>&lt;branch di riferimento&gt;</em> con il primo comando, e si passa ad esso con il secondo comando.Un comando più compatto è:</p>
<pre>git checkout -b nome_branch &lt;branch di riferimento&gt;</pre>
<p>che fa tutto in una volta, sia la creazione che lo switch al nuovo branch.</p>
<p><strong>Commit e push delle modifiche</strong></p>
<p>Dopo aver lavorato sui nostri sorgenti, siano essi nella master (l&#8217;equivalente di head) o in un branch, arriviamo al punto di consolidare le modifiche nel repository. Questo avviene in due passi distinti:</p>
<ol>
<li>commit nel repository locale</li>
<li>commit (push) nel repository remoto</li>
</ol>
<p>La prima operazione è simile nell&#8217;idea a quella che si farebbe con CVS o SVN, anche se ottiene risultati leggermente diversi. Usando il comando</p>
<pre>git commit -a --no-verify -m"descrizione della commit"</pre>
<p>si consolidano le modifiche nel repository <em>locale</em>, senza andare a sporcare quello remoto. Si possono effettuare tutte le commit che si vogliono sul repository locale senza dover necessariamente mandarle su quello remoto. E&#8217; possibile effettuare la commit per un singolo file con il comando</p>
<pre>git commit path/to/file --no-verify -m"descrizione della commit"</pre>
<p>Una volta soddisfatti delle modifiche fatte e committate in locale, possiamo mandare le modifiche sul repository remoto con il comando &lt;p class=&#8221;code&#8221;&gt;</p>
<pre>git push</pre>
<p>si inviano tutte le commit effettuate sul branch corrente sul repository remoto in modo che siano visibili a tutti gli altri sviluppatori. Usando il comando</p>
<pre>git push origin nome_branch</pre>
<p>si invia al repository remoto il contenuto del branch <em>nome_branch</em>, anche partendo da un branch diverso. (Ad esempio, ho lavorato un po&#8217; su master, poi su un branch e poi di nuovo su master, con questo comando posso spedire le modifiche committate sul branch senza dover fare lo switch)</p>
<p><strong>Aggiornare un repository già  scaricato</strong></p>
<p>Ovviamente non è sempre necessario scaricare da zero un repository, esiste anche in git un comando per aggiornare un repository già  scaricato in locale:</p>
<p>git pull &lt;nome_branch&gt;</p>
<p>aggiorna il repository locale partendo da quello remoto (l&#8217;equivalente del comando update di cvs o svn), aggiungendo nome_branch si aggiorna solo quello specifico branch.</p>
<p><strong>Creare una release dei sorgenti</strong></p>
<p>Una volta arrivati al momento di rilasciare, viene comodo il seguente comando:</p>
<pre>git archive --format=tar --prefix=qtodo/ Ver_0.1.0 | gzip &gt; qnotes_v0.1.0.tgz</pre>
<p>che crea un file tar.gz che contiene i sorgenti del tree Ver_0.1.0 (in pratica il branch). Ovviamente git è  parecchio più potente e consente di fare molte altre cose, ma questo  articolo vuole solo essere un&#8217;infarinatura su come cominciare a lavorare usando git al posto di cvs o svn, non un tutorial completo, che magari arriverà in un futuro.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.grys.it/index.php/2008/01/lavorare-con-git/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Git Rulez</title>
		<link>http://www.grys.it/index.php/2007/12/git-rulez/</link>
		<comments>http://www.grys.it/index.php/2007/12/git-rulez/#comments</comments>
		<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Software]]></category>
		<category><![CDATA[Git]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Ultimamente mi è venuto lo schizzo di mettermi a giocare con Git, il Version Control System usato tra l&#8217;altro per gestire i sorgenti Linux. Devo dire che dopo le prime incomprensioni (dovute principalmente a Windows a dire la verità ) sembra non essere male. Forse è anche troppo per le dimensioni del progettino con cui [...]]]></description>
			<content:encoded><![CDATA[<p>Ultimamente mi è venuto lo schizzo di mettermi a giocare con <a href="http://git.or.cz">Git</a>, il Version Control System usato tra l&#8217;altro per gestire i sorgenti Linux. Devo dire che dopo le prime incomprensioni (dovute principalmente a Windows a dire la verità ) sembra non essere male. Forse è anche troppo per le dimensioni del <a href="http://repo.or.cz/w/vtf.git">progettino</a> con cui lo sto testando, ma così per provare può anche andare bene.Una cosa da ricordare: quando si fa una commit da Windows, i file devono essere in formato Unix, altrimenti git non gradisce molto l&#8217;iniziativa. (<strong>update:</strong> a questo di può ovviare usando lo switch &#8211;no-verify) Per la cronaca, il progettino è il software che farò vedere durante la serata introduttiva su python e qt che terrò al <a href="http://www.lifos.org">Lifos</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.grys.it/index.php/2007/12/git-rulez/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

