{"id":12275,"date":"2017-02-27T09:17:59","date_gmt":"2017-02-27T08:17:59","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12275"},"modified":"2017-02-27T09:17:59","modified_gmt":"2017-02-27T08:17:59","slug":"iniziare-con-git-cose-e-come-installarlo","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/iniziare-con-git-cose-e-come-installarlo\/","title":{"rendered":"Iniziare con Git: cos&#8217;\u00e8 e come installarlo"},"content":{"rendered":"<p><a href=\"https:\/\/git-scm.com\/\" target=\"_blank\">Git<\/a>, insieme al sistema operativo Linux, \u00e8 una delle grandi creazioni di <a href=\"https:\/\/it.wikipedia.org\/wiki\/Linus_Torvalds\" target=\"_blank\">Linus Torvalds<\/a>. Si tratta di un<strong> sistema per il controllo di versione distribuito<\/strong> che ha acquisito una grandissima importanza nello scenario dello sviluppo software mondiale.<\/p>\n<p>Tanto per chiarire l&#8217;ambito di impiego di questo strumento diamo qualche delucidazione sull&#8217;espressione &#8220;sistema di controllo di versione distribuito&#8221;. Quando si lavora ad un progetto, i file che lo costituiscono evolvono in continuazione. Parliamo di progetti in senso lato riferendoci, in primis, a quelli di sviluppo software ma anche a quelli di\u00a0design web, grafica, documentali o anche di campo non prettamente informatico. Per tener traccia dell&#8217;evoluzione del nostro lavoro potremmo\u00a0organizzarci in maniera &#8220;artigianale&#8221; preoccupandoci di conservare backup di cartelle e copie di file: ci\u00f2 potrebbe anche funzionare ma risulterebbe\u00a0dispendioso in termini di tempo e non totalmente affidabile soprattutto quando si lavora in team. Per seguire\u00a0quindi\u00a0prassi pi\u00f9 consone all&#8217;ambito professionale, sono nati sistemi che si occupano esclusivamente di mantenere memoria dello stato in evoluzione di un progetto, permettendo di sincronizzare il lavoro di pi\u00f9 collaboratori e mantenere copie di tutte le versioni che ogni file ha assunto: tutto ci\u00f2, per l&#8217;appunto, ricade sotto l&#8217;espressione\u00a0Version Control System.<\/p>\n<p>Le tipologie di questi software pi\u00f9 utilizzati al momento sono due: <strong>centralizzati<\/strong> come il famoso <a href=\"https:\/\/subversion.apache.org\/\" target=\"_blank\">SVN <\/a>e quelli <strong>distribuiti<\/strong> come il nostro Git. I primi custodiscono un&#8217;unica copia dei progetti in un server centrale che ne garantisce la sicurezza e la coerenza ma che rischia presto di diventare il punto debole di tutta l&#8217;organizzazione. I secondi vedono invece un <em>repository<\/em>, originale, che contiene lo stato del progetto ed ogni sviluppatore non prelever\u00e0 singoli file da esso ma potr\u00e0 clonare l&#8217;intero repository, lavorarvi in proprio per poi, eventualmente, sincronizzarlo ancora con l&#8217;archivio originale: tutto ci\u00f2 secondo principi e modalit\u00e0 che spiegheremo pi\u00f9 avanti.<\/p>\n<p>Git \u00e8 un sistema open-source, gratuito e multipiattaforma pertanto potremo averlo a disposizione su qualunque sistema operativo.<\/p>\n<p>Nel caso specifico di questa guida se ne pensa un uso su Linux dove pu\u00f2 essere installato tramite i repository ufficiali delle distribuzioni. In Ubuntu, ad esempio, sar\u00e0 sufficiente una tipica istruzione da riga di comando:<\/p>\n<pre class=\"lang:sh decode:true\">$ sudo apt-get install git<\/pre>\n<p>ma esistono altre modalit\u00e0 come la compilazione diretta dei sorgenti.<\/p>\n<p>Tutte le opzioni di installazione per qualunque piattaforma sono disponibili in maniera molto chiara presso la <a href=\"https:\/\/git-scm.com\/downloads\" target=\"_blank\">pagina &#8220;Downloads&#8221;<\/a> del sito ufficiale.<\/p>\n<p>Dopo l&#8217;installazione Git, richiede alcune <strong>configurazioni<\/strong> riguardanti,\u00a0quanto\u00a0meno, un username e un indirizzo email:<\/p>\n<pre class=\"lang:sh decode:true \">$ git config --global user.name 'pippo'\r\n$ git config --global user.email pippo@mioserver.com<\/pre>\n<p>Questa \u00e8 solo una breve introduzione a Git, al giorno d&#8217;oggi uno dei migliori alleati dello sviluppatore e nelle prossime lezioni ne vedremo in maggiore dettaglio l&#8217;utilizzo.<\/p>\n<p>Alla prossima!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Git, insieme al sistema operativo Linux, \u00e8 una delle grandi creazioni di Linus Torvalds. Si tratta di&#8230;<\/p>\n","protected":false},"author":561,"featured_media":12860,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[30,481,1],"tags":[991,1728,1721,1407,495,1723],"class_list":["post-12275","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-materiale-open-source","category-risorse-utili","category-tutorial-pratici","tag-alternativa-a-svn","tag-git","tag-linux","tag-risorse-utili-open-source","tag-svn","tag-version-control-system"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12275","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/561"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=12275"}],"version-history":[{"count":3,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12275\/revisions"}],"predecessor-version":[{"id":12317,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12275\/revisions\/12317"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media\/12860"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=12275"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12275"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12275"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}