Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
branch: gh-pages
Fetching contributors…

Cannot retrieve contributors at this time

227 lines (223 sloc) 12.713 kB
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>git - la guida tascabile - niente di complicato!</title>
<link href='http://fonts.googleapis.com/css?family=Chelsea+Market' rel='stylesheet' type='text/css'>
<link rel="stylesheet" href="css/normalize.css" type="text/css">
<link rel="stylesheet" href="css/style.css" type="text/css">
<script type="text/javascript">
var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-652147-13']);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();
function recordOutboundLink(link, category, action) {
_gat._getTrackerByName()._trackEvent(category, action);
setTimeout('document.location = "' + link.href + '"', 100);
}
</script>
</head>
<body>
<div class="scrollblock block-title">
<h1>git - la guida tascabile</h1>
<p>Solamente una piccola guida per iniziare con git. Niente di complicato ;)</p>
<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://rogerdudler.github.com/git-guide" data-via="rogerdudler" data-size="large" data-related="rogerdudler" data-hashtags="git">Tweet</a>
<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
<p class="meta">
by <a href="http://www.twitter.com/rogerdudler">Roger Dudler</a> (translation by <a href="http://www.twitter.com/stecb">@stecb</a>)
<br />credits to <a href="http://www.twitter.com/tfnico">@tfnico</a>, <a href="http://www.twitter.com/fhd">@fhd</a>, <a href="http://www.namics.com">Namics</a><br />
this guide in <a href="index.de.html">deutsch</a>, <a href="index.html">english</a>, <a href="index.es.html">español</a>, <a href="index.fr.html">français</a>, <a href="index.nl.html">nederlands</a>, <a href="index.pt_BR.html">português</a>, <a href="index.ru.html">русский</a>, <a href="index.ja.html">日本語</a><br />
</p>
<img src="img/arrow.png" alt="" />
</div>
<!-- setup -->
<a name="setup"></a>
<div class="scrollblock block-setup">
<h2>installazione</h2>
<p>
<a href="http://code.google.com/p/git-osx-installer/downloads/list?can=3">Scarica git per OSX</a>
</p>
<p>
<a href="http://code.google.com/p/msysgit/downloads/list?can=3">Scarica git per Windows</a>
</p>
<p>
<a href="http://book.git-scm.com/2_installing_git.html">Scarica git for Linux</a>
</p>
</div>
<a name="create"></a>
<div class="scrollblock block-create">
<h2>creazione di un nuovo repository</h2>
<p>
crea una nuova directory, entraci ed esegui <br />
<code>git init</code><br />
per creare un nuovo repository git.
</p>
</div>
<a name="checkout"></a>
<div class="scrollblock block-checkout">
<h2>checkout di un repository</h2>
<p>
crea una copia di un repository locale eseguendo il comando<br />
<code>git clone /percorso/del/repository</code><br />
usando invece un server remoto, il comando sar&agrave;<br />
<code>git clone nomeutente@host:/percorso/del/repository</code>
</p>
</div>
<a name="trees"></a>
<div class="scrollblock block-trees">
<h2>ambiente di lavoro</h2>
<p>
la tua copia locale del repository &egrave; composta da tre "alberi" mantenuti da git.
Il primo &egrave; la tua <code>Directory di lavoro</code> che contiene i files attuali.
Il secondo &egrave; l'<code>Index</code> che fa da spazio di transito per i files
e per finire l'<code>HEAD</code> che punta all'ultimo commit fatto.
</p>
<img src="img/trees.png" alt="" />
</div>
<a name="add"></a>
<div class="scrollblock block-add">
<h2>aggiungere &amp; validare</h2>
<p>
Puoi proporre modifiche (aggiungendole all'<b>Index</b>) usando<br />
<code>git add &lt;nomedelfile&gt;</code><br />
<code>git add *</code><br />
Questo &egrave; il primo passo nel flusso di lavoro in git. Per validare queste modifiche fatte si usa<br />
<code>git commit -m "Messaggio per la commit"</code><br />
Ora il file &egrave; correttamente nell'<b>HEAD</b>, ma non ancora nel repository remoto.
</p>
</div>
<a name="push"></a>
<div class="scrollblock block-remote">
<h2>invio delle modifiche</h2>
<p>
Quello che hai cambiato ora &egrave; nell'<b>HEAD</b> della copia locale. Per inviare queste modifiche al repository remoto, esegui<br />
<code>git push origin master</code><br />
Cambia <i>master</i> nel branch al quale vuoi inviare i cambiamenti.
<br /><br />
Se non hai copiato un repository esistente, e vuoi connettere il tuo repository ad un server remoto, c'e' bisogno che tu lo aggiunga con<br />
<code>git remote add origin &lt;server&gt;</code><br />
Ora sarai in grado di inviare le tue modifiche al server remoto specificato<br />
</p>
</div>
<a name="branching"></a>
<div class="scrollblock block-branching">
<h2>branching</h2>
<p>
I branch ('ramificazioni') sono utilizzati per sviluppare features che sono isolate l'una dall'altra. Il branch <i>master</i> &egrave; quello di default quando crei un repository. Puoi usare altri branch per lo sviluppo ed infine incorporarli ('merge') nel master branch una volta completati.
</p>
<img src="img/branches.png" alt="" />
<p>
crea un nuovo branch chiamato "feature_x" e passa al nuovo branch usando<br />
<code>git checkout -b feature_x</code><br />
ritorna di nuovo su master<br />
<code>git checkout master</code><br />
e cancella il branch creato in precedenza<br />
<code>git branch -d feature_x</code><br />
il branch </i>non sar&agrave; disponibile agli altri</i> fino a quando non verr&agrave; inviato al repository remoto<br /><br />
<code>git push origin &lt;branch&gt;</code>
</p>
</div>
<a name="update"></a>
<div class="scrollblock block-merging">
<h2>aggiorna &amp; incorpora</h2>
<p>
per aggiornare il tuo repository locale alla commit pi&ugrave; recente, esegui<br />
<code>git pull</code><br />
nella tua directory corrente per fare una <i>fetch</i> (recuperare) ed incorporare(<i>merge</i>) le modifiche fatte sul server remoto. <br />
per incorporare un altro branch nel tuo branch attivo (ad esempio master), utilizza<br />
<code>git merge &lt;branch&gt;</code><br />
in entrambi i casi git prova ad auto-incorporare le modifiche. Sfortunatamente, a volte questa procedura automatizzata non &egrave; possibile, ed in questo caso ci saranno dei <i>conflitti</i>.
Sei tu il responsabile che sistemer&agrave; questi <i>conflitti</i>
manualmente modificando i file che git mostrer&agrave;. Dopo aver cambiato questi files, dovrai marcarli come 'correttamente incorporati' tramite<br />
<code>git add &lt;nomedelfile&gt;</code><br />
prima di immettere le modifiche, potrai anche visualizzarne un'anteprima eseguendo<br />
<code>git diff &lt;branch_sorgente&gt; &lt;branch_target&gt;</code>
</p>
</div>
<a name="tagging"></a>
<div class="scrollblock block-tagging">
<h2>tags</h2>
<p>
&Egrave; raccomandato creare dei tags nel caso in cui il software venga rilasciato. Questo &egrave; un concept gi&agrave; conosciuto, che esiste anche in SVN. Puoi creare un tag chiamato <i>1.0.0</i> eseguendo<br />
<code>git tag 1.0.0 1b2e1d63ff</code><br />
la sequenza <i>1b2e1d63ff</i> sta per i primi 10 caratteri del commit che si vuol referenziare tramite questo tag. Puoi ottenere l'id della commit tramite<br />
<code>git log</code><br />
puoi anche utilizzare meno caratteri per l'id della commit, basta che sia unico.
</p>
</div>
<a name="checkout-replace"></a>
<div class="scrollblock block-checkout-replace">
<h2>sostituire i cambiamenti locali</h2>
<p>
Nel caso tu abbia fatto qualcosa di sbagliato (ma non capita mai, sicuro ;) puoi sostituire i cambiamenti fatti in locale con il comando<br />
<code>git checkout -- &lt;nomedelfile&gt;</code><br />
questo rimpiazza le modifiche nell'albero di lavoro con l'ultimo contenuto presente in HEAD. I cambiamenti fatti ed aggiunti all'index, cos&igrave; come i nuovi files, verranno mantenuti.
</p>
<p>
Se vuoi in alternativa eliminare tutti i cambiamenti e commits fatti in locale, recupera l'ultima versione dal server e fai puntare il tuo master branch a quella versione in questo modo<br />
<code>git fetch origin</code><br />
<code>git reset --hard origin/master</code>
</p>
</div>
<a name="hints"></a>
<div class="scrollblock block-hints">
<h2>suggerimenti utili</h2>
<p>
GUI (Interfaccia utente grafica) per git disponibile di default<br />
<code>gitk</code><br />
colora gli output di git<br />
<code>git config color.ui true</code><br />
mostra il log in una riga per commit<br />
<code>git config format.pretty oneline</code><br />
utilizza l'aggiunta interattiva<br />
<code>git add -i</code>
</p>
</div>
<a name="resources"></a>
<div class="scrollblock block-resources">
<h2>links & risorse</h2>
<h3>clients grafici</h3>
<p>
<ul>
<li><a href="http://gitx.laullon.com/">GitX (L) (OSX, open source)</a></li>
<li><a href="http://www.git-tower.com/">Tower (OSX)</a></li>
<li><a href="http://www.sourcetreeapp.com/">Source Tree (OSX, free)</a></li>
<li><a href="http://mac.github.com/">GitHub per Mac (OSX, free)</a></li>
</ul>
</p>
<h3>le guide</h3>
<p>
<ul>
<li><a href="http://book.git-scm.com/">Git Community Book</a></li>
<li><a href="http://progit.org/book/">Pro Git</a></li>
<li><a href="http://think-like-a-git.net/">Think like a git</a></li>
<li><a href="http://help.github.com/">GitHub Help</a></li>
<li><a href="http://marklodato.github.com/visual-git-guide/index-en.html">A Visual Git Guide</a></li>
</ul>
</p>
</div>
<a name="comments"></a>
<div class="scrollblock block-comments">
<h2>commenti</h2>
<div id="disqus_thread"></div>
<script type="text/javascript">
/* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
var disqus_shortname = 'git-the-simple-guide'; // required: replace example with your forum shortname
/* * * DON'T EDIT BELOW THIS LINE * * */
(function() {
var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
dsq.src = 'http://' + disqus_shortname + '.disqus.com/embed.js';
(document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
})();
</script>
<noscript>Per favore abilita JavaScript per essere in grado di vedere i <a href="http://disqus.com/?ref_noscript">commenti - powered by Disqus.</a></noscript>
</div>
<a href="http://www.git-tower.com/?source=rd" onClick="recordOutboundLink(this, 'Outbound Links', 'git-tower.com');return false;" class="tower"></a>
<a href="files/git_cheat_sheet.pdf" onClick="recordOutboundLink(this, 'Cheat Sheet', 'git-guide');return false;" class="cheatsheet"></a>
</body>
</html>
Jump to Line
Something went wrong with that request. Please try again.