{"id":12380,"date":"2017-04-18T10:44:35","date_gmt":"2017-04-18T08:44:35","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=12380"},"modified":"2017-04-18T10:46:20","modified_gmt":"2017-04-18T08:46:20","slug":"git-controllare-lo-stato-dei-file-con-il-comando-git-status","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/git-controllare-lo-stato-dei-file-con-il-comando-git-status\/","title":{"rendered":"Git, controllare lo stato dei file con il comando git status"},"content":{"rendered":"<p>Nei <a href=\"http:\/\/www.devapp.it\/wordpress\/tag\/git\/\">tutorial precedenti<\/a>, abbiamo introdotto l&#8217;utilizzo di Git, uno dei meccanismi di controllo di versione pi\u00f9 diffusi al mondo, facendo la conoscenza dei suoi principali comandi. Riassumiamoli:<\/p>\n<ul>\n<li><em>git init<\/em> per inizializzare un nuovo repository;<\/li>\n<li><em>git add<\/em> per aggiungere file alla stanging area (l&#8217;indice che fa da ponte tra directory di lavoro e repository);<\/li>\n<li><em>git commit<\/em> per il salvataggio delle modifiche nel repository;<\/li>\n<li><em>git clone<\/em> per clonare un repository.<\/li>\n<\/ul>\n<p>Ma come monitorare l&#8217;attraversamento delle varie fasi ? Esistono sistemi di controllo del funzionamento di Git ed il principale \u00e8 quello che vediamo in questo tutorial: il comando <strong>git status<\/strong>.<\/p>\n<p><strong>Iniziamo l&#8217;esempio<\/strong> con la creazione di una cartella e portiamoci al suo interno:<\/p>\n<pre class=\"lang:sh decode:true\">&gt; mkdir esempi-git\r\n&gt; cd esempi-git<\/pre>\n<p>richiedendo ora lo<strong> stato del repository<\/strong> git (senza ancora aver effettuato il comando <em>git init<\/em>), come presumibile, riceveremo una risposta negativa:<\/p>\n<pre class=\"lang:sh decode:true\">fatal: Not a git repository (or any of the parent directories): .git<\/pre>\n<p><strong>Creiamo il nostro repository git<\/strong> e chiediamone lo stato immediatamente:<\/p>\n<pre class=\"lang:sh decode:true\">&gt; git init\r\nInizializzato un repository Git in \/home\/ospite\/laboGit\/esempi-git\/.git\/\r\n&gt; git status\r\n\r\nSul branch master\r\nCommit iniziale\r\nnothing to commit (create\/copy files and use \"git add\" to track)<\/pre>\n<p>Questa volta, sar\u00e0 rilevato un repository esistente senza alcuna modifica di cui fare il commit. Interessante notare come <em>git status<\/em> offra sempre, nel suo output, suggerimenti sul come proseguire: in questo caso, propone come passo successivo di creare e\/o copiare file e tracciarli con <em>git add<\/em>.<\/p>\n<p><strong>Creiamo un file<\/strong> di nome <em>nota01.txt<\/em> con qualunque editor di testo inserendovi un contenuto di nostro gradimento. Vediamo ora cosa riporta <strong>git status<\/strong>:<\/p>\n<pre class=\"lang:sh decode:true \">&gt; git status\r\nSul branch master\r\n\r\nCommit iniziale\r\n\r\nUntracked files:\r\n  (use \"git add &lt;file&gt;...\" to include in what will be committed)\r\n\r\n\tnota01.txt\r\n\r\nnothing added to commit but untracked files present (use \"git add\" to track)<\/pre>\n<p>in pratica, ci viene\u00a0segnalata la presenza\u00a0di file non tracciati con il consiglio, quanto meno, di effettuarne l&#8217;<strong>inserimento nella staging area<\/strong> con add. Cosa che facciamo subito:<\/p>\n<pre class=\"lang:sh decode:true \">&gt; git add nota01.txt \r\n&gt; git status\r\nSul branch master\r\n\r\nCommit iniziale\r\n\r\nChanges to be committed:\r\n  (use \"git rm --cached &lt;file&gt;...\" to unstage)\r\n\r\n\tnew file:   nota01.txt\r\n<\/pre>\n<p>Quello che manca \u00e8 il <strong>commit<\/strong>:<\/p>\n<pre class=\"lang:sh decode:true \">&gt; git commit nota01.txt -m 'primo salvataggio'\r\n[master (root-commit) 06f2780] primo salvataggio\r\n 1 file changed, 1 insertion(+)\r\n create mode 100644 nota01.txt\r\n&gt; git status\r\nSul branch master\r\nnothing to commit, working directory clean<\/pre>\n<p>Le modifiche ora sono state salvate infatti come possiamo vedere <em>git status<\/em> ci comunica che non abbiamo niente di cui fare commit, <em>nothing to commit<\/em>.<\/p>\n<p>Con questa lezione, abbiamo\u00a0acquisito\u00a0maggiore controllo sulle operazioni che svolgiamo mediante il programma\u00a0git: tutto ci\u00f2 \u00e8 molto importante in quanto un meccanismo cos\u00ec articolato va necessariamente conosciuto approfonditamente.<\/p>\n<p>Alla prossima!<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Nei tutorial precedenti, abbiamo introdotto l&#8217;utilizzo di Git, uno dei meccanismi di controllo di versione pi\u00f9 diffusi&#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,1927,1723],"class_list":["post-12380","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-tutorial-git","tag-version-control-system"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12380","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=12380"}],"version-history":[{"count":7,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12380\/revisions"}],"predecessor-version":[{"id":12966,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/12380\/revisions\/12966"}],"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=12380"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=12380"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=12380"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}