Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 11 additions & 11 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ E' un Social Network. Come Facebook. Instagram. LinkedIn. Tik Tok. E come tutti

Hai presente quando prepari un preventivo per un cliente? Oppure stai scrivendo una relazione o un documento da presentare? Bene. Lo salvi sul tuo PC, con il nome *documento.doc* ad esempio. Poi lo modifichi. E lo risalvi. *documento1.doc* perché vuoi tenere l'altra versione. Poi senti il cliente, lo modifichi e lo risalvi. *documento-finale.doc*. Ti chiama il collega, una bella notizia. Aspetta che modifico l'offerta. *documento-finale-def.doc*

Tutte le *versioni* dei file che vengono prodotte sono poi di difficile gestione. Ecco, **Git** è un software che permette di tenere traccia di tutte le versioni dei file e delle relative modifiche. Su questo software nasche GitHub, un vero e proprio social network che permette in sostanza agli utenti di *condividere file (programmi o anche semplice testo)* tenendo traccia delle versioni.
Tutte le *versioni* dei file che vengono prodotte sono poi di difficile gestione. Ecco, **Git** è un software che permette di tenere traccia di tutte le versioni dei file e delle relative modifiche. Su questo software nasce GitHub, un vero e proprio social network che permette in sostanza agli utenti di *condividere file (programmi o anche semplice testo)* tenendo traccia delle versioni.

Diventa quindi un ottimo strumento per chi sviluppa software ma anche per chi vuole condividere un documento di testo: pensate ad esempio se voleste *scrivere un ebook cercando la collaborazione di altre persone*. GitHub fa al caso vostro, ed al mio.

Expand All @@ -23,33 +23,33 @@ Come dicevo prima, non aspettarti che qualcuno condivida le foto delle proprie v

## Gli elementi principali di GitHub
Sostanzialmente sono 3 gli *elementi principali* di GitHub:
* I **Repository** sono un contenitore, all'interno del quale poter creare file, documenti, cartelle, sottocartelle, etc. Quello che state leggendo, ad esempio, non è altro che un file (di nome README) all'interno derl repository *come-usare-github*
* I **Repository** sono un contenitore, all'interno del quale poter creare file, documenti, cartelle, sottocartelle, etc. Quello che state leggendo, ad esempio, non è altro che un file (di nome README.md) all'interno del repository *come-usare-github*
* **Issue**: questo è uno degli aspetti principali della *collaborazione* su GitHub: in questa sezione l'autore del documento può inserire dei "commenti" relativi ai vari step del progetto (repository), **oppure gli altri utenti possono suggerire delle modifiche** Vuoi suggerire qualcosa? Clicca su *Issue* scrivi un titolo e lascia un commento. Il gioco è fatto :-)
* **I Branch e le Pull Request** Qui la cosa cosa è leggermente più complicata ma non troppo. Poniamo che tu voglia suggerimi una modifica a questo testo. I *Branch* puoi paragonarli alle "versioni dei file". Di conseguenza, per suggerire una modifica, devi prima creare un nuovo Branch, ovvero una copia del documento, sulla quale effettuare le tue modifiche (questo indipendendemente che si tratti di codice software o un testo come questo o un ebook di ricette di cucina!).
In questo modo potrai modificare a piacere un file per sottoporlo all'autore tramite una *Pull Request*: in questo modo chi ha creato il file (ovvero il Branch "master") potrà vedere le modifiche proposte, confrontare i due "file" (ovvero i due Branch) e decidere se accettarle o meno, creado così un nuovo file "master".
* **I Branch e le Pull Request** Qui la cosa cosa è leggermente più complicata ma non troppo. Poniamo che tu voglia suggerirmi una modifica a questo testo. I *Branch* puoi paragonarli alle "versioni dei file". Di conseguenza, per suggerire una modifica, devi prima creare un nuovo Branch, ovvero una copia del documento, sulla quale effettuare le tue modifiche (questo indipendendemente che si tratti di codice software o un testo come questo o un ebook di ricette di cucina!).
In questo modo potrai modificare a piacere un file per sottoporlo all'autore tramite una *Pull Request*: in questo modo chi ha creato il file (ovvero il Branch "master") potrà vedere le modifiche proposte, confrontare i due "file" (ovvero i due Branch) e decidere se accettarle o meno, creando così un nuovo file "master".

Se ci pensiamo bene, un sistema come questo è veramente potente sotto il profilo della collaborazione perché permette di creare documenti (o software...) a più mani e allo stesso tempo di tenere traccia di tutto.

## Gli "amici" su GitHub
Come tutti i social network che si rispettino, anche su GitHub puoi "seguire" gli utenti. Basta cliccare il tasto **Follow** e gli aggiornamenti relativi alle attività di quell'utente ti compariranno nella tua "home page" o "timeline" per dirla alla Facebook
Un altra azione importante è la *star* che puoi applicare sui vari *Repository*: in sostanza una volta che ha posto una star su un repository, lo ritroverai tra i "preferiti" sul tuo profilo, per poterlo così raggiungere più facilmente.
Come tutti i social network che si rispettino, anche su GitHub puoi "seguire" gli utenti. Basta cliccare il tasto **Follow** e gli aggiornamenti relativi alle attività di quell'utente ti compariranno nella tua "home page" o "timeline" per dirla alla Facebook.
Un altra azione importante è la *star* che puoi applicare sui vari *Repository*: in sostanza una volta che hai posto una star su un repository, lo ritroverai tra i "preferiti" sul tuo profilo, per poterlo così raggiungere più facilmente.

Per rimanere aggiornati sugli sviluppi di un Repositori, c'è anche l'opzione **Watch** che in pratica attiva le novifiche.
Per rimanere aggiornati sugli sviluppi di un Repository, c'è anche l'opzione **Watch** che in pratica attiva le notifiche.

> fai una prova: in alto a destra, prova a selezionare *watch* o *star* per rimanere aggiornato su questo Repository!

## Cos'è il Fork??
Semplificando al massimo la questione, quando un utente effettua un *Fork di un Repository* lo copia sul proprio profilo per poi modificarlo. Per quale motivo? Beh, possono essere molteplici. Poniamo che vogliate creare una "Guida per GitHub" e vi piace questo documento che ho readatto, ma vogliare aggiungere e modificarne alcune parti.
Semplificando al massimo la questione, quando un utente effettua un *Fork di un Repository* lo copia sul proprio profilo per poi modificarlo. Per quale motivo? Beh, possono essere molteplici. Poniamo che vogliate creare una "Guida per GitHub" e vi piace questo documento che ho readatto, ma vogliate aggiungere e modificarne alcune parti.

Una delle possibilità è "copiare" questo documento (Repository) con un Fork sul vostro profilo per poi aggiungere quello che volete. In questo modo, il mio documento rimane intatto e le vostre aggiunte/modifiche saranno visibili ai vostri "follower".

## Come scrivere un documento su GitHub?
I progetti più semplici - ma per questo non banali - possono essere formati da un solo documento di testo, come ad esempio questo Repository. Di norma GitHub - una volta che si apre un Repository ci chiede di creare automaticamente il file README.MD (quello che state leggendo) che, per convenzione, non è altro che il primo file che si visualizza quando si accede ad un Repository.
I progetti più semplici - ma non per questo banali - possono essere formati da un solo documento di testo, come ad esempio questo Repository. Di norma GitHub, una volta che si apre un Repository ci chiede di creare automaticamente il file README.MD (quello che state leggendo) che, per convenzione, non è altro che il primo file che si visualizza quando si accede ad un Repository.

Il file README.MD - come gli altri file di testo - sono in formato *Markdown*: cosa significa? Nulla di particolarmente insidioso, anzi. E' un formato di testo "semplificato" che permette di scrivere utilizzando determinate regole. Ha il vantaggio di essere molto "leggero" e "trasportabile" tra vari sistemi operativi.

Personalmente utilizzare il Markdonw per scrivere un testo è una cosa che adoro perché ti permette di creare testi velocemente, puliti e chiari. [Sul mio blog](https://marcogovoni.it) - ad esempio - tutti gli articoli sono scritti in Markdown.
Personalmente utilizzare il Markdown per scrivere un testo è una cosa che adoro perché ti permette di creare testi velocemente, puliti e chiari. [Sul mio blog](https://marcogovoni.it) - ad esempio - tutti gli articoli sono scritti in Markdown.

## Ed ora?
Se ti sei iscritto ora a GitHub, inizia ad esplorare: usa il campo ricerca per trovare qualcosa che ti interessi, leggi, approfondisci e.... seguimi :innocent:
Se ti sei iscritto ora a GitHub, inizia ad esplorare: usa il campo ricerca per trovare qualcosa che ti interessi, leggi, approfondisci e... seguimi :innocent:
Scoprirai che su GitHub puoi trovare non solo *programmatori* ma anche molti progetti interessanti: dalla fotografia, alla meccanica, passando per la cucina (ci sono ricette da far venire appetito a qualsiasi ora!)