Chiedo alcuni chiarimenti su Github.

Gabriele Battaglia
 

Ciao a tutti e grazie in generale per la qualità dei messaggi di questi ultimi giorni. Sto seguendo con interesse la lista ed ho letto dei bei messaggi che mi hanno arricchito.

Desideravo chiedere a chi lo conosce, qualcosa su Github. Prima però devo scrivere un rapido preambolo.
Io ho un account ma non ci ho mai fatto nulla. Quanto chiedo probabilmente lo potrei scoprire da solo girando per il sito, facendo prove o leggendone le relative guide. Chiedo per pigrizia, nel tentativo di risparmiare tempo e di ricevere in forma condensata quelle informazioni che troverei ugualmente in documenti molto lunghi, in inglese e magari sparpagliati qua e là su molte pagine.
Mi rendo altrettanto conto però, che anche il vostro tempo sia prezioso e che non ne avete certo da buttare per scrivermi ciò che è già scritto da qualche parte. Quindi ho pensato di richiedervi uno sforzo minimo, potreste scrivere si o no, oppure nel caso lo riteniate qualche commento extra, direttamente sotto le mie affermazioni?
Non mi servono istruzioni dettagliate, voglio solo avere un'idea generale sul perchè esiste github e sul perchè uno dovrebbe usarlo.

Grazie a tutti quelli che sono arrivati fin qui, ai quali per altro chiedo perdono per la mia indolenza.

Github ha lo scopo di permettere a più persone di collaborare per sviulppare un software che sia libero cioè le cui sorgenti siano visibili e modificabili da tutti. Questo so che è vero ma. Se io ho un account, entro su Github, scelgo un progetto, visualizzo il codice, applico una modifica e poi ne faccio upload sul server, ho modificato il software per tutti?
Non è pericoloso?

Oppure forse creo automaticamente uno branch?

Mi spiego. Ammettiamo che io, sviluppatore indipendente, crei un progetto tipo app per il trasporto pubblico che mi permette di vedere gli orari dei treni.
Poi arriva Simone, guarda i miei sorgenti li modifica e ci aggiunge la possibilità di vedere anche gli orari del Flixbus; quindi carica tutto su Github.
A questo punto avremo 2 rami? La mia con solo i treni e la sua con 2 cose?
Poi, quale dei 2 rami sarà considerato principale, la mia che sono il creatore e che è più vecchia e meno completa, o lui che magari è meno conosciuto e potenzialmente un hacker cattivo, ma che ha una versione più buona e più recente?

E cosa succede se io, visto il codice di Simone, lo approvo e mi piace e decido di includerlo nell'app ufficiale? Quel ramo scompare, o se ne crea un terzo con le 2 versioni unite?

Adesso mettiamo che arrivi anche Alberto a complicare le cose. Guarda il software e ci trova un bug terrificante, però non ha ne voglia ne tempo per metterlo a posto ma ce lo vuole solo segnalare. Che possibilità ha per farlo?
Intanto, apre un ticket immagino, ma su quale ramo dell'App? E il ticket chi lo legge, io, Simone o entrambi.... oppure tutti?

Adesso mettiamo che arrivi anche Chris, il quale ha un'ideona: aggiungere anche gli orari dei voli di Alitalia. Ma si sa che quando c'è in mezzo Alitalia, non che Trenitalia sia poi così rose e fiori, succede sempre qualche casino. Le intenzioni di Chris erano ottime ma però gli scappa un buggone enorme.
Io, tronfio e fiducioso, non me ne accorgo, mentre Simone, decisamente più sveglio ed attento, sì.
Io voglio includere la versione di Chris nella mia app principale perchè non credo che abbia sbagliato, Simone invece insiste che in quella di Chris c'è qualcosa che non va. Non arriviamo ad un accordo e proseguiamo su 2 strade diverse... Beh, la mia sarà molto corta ma ancora non posso saperlo. A questo punto che succede: si creano 2 rami principali? Ma possono mantenere lo stesso nome?
E se poi si creano 2 partiti, i battaglini e i dalmasiani, questi 2 rami possono poi suddividersi a propria volta in altri sottorami, tipo una con gli orari del ferribot per la Corsica, e l'altra con quello dei carrelli dei minatori di Joannesburg, o come cavolo si scrive?

Poi, perchè quando si entra in un progetto, oltre all'eseguibile, a proposito, viene compilato automaticamente? Si possono sfogliare anche tutti i file del progetto? Non ditemi che anche di ogni singolo file di un progetto si possono creare dei branches, vi prego; cioè se io correggo una guida in HTML, quando avrò finito ci sarà la versione originale della guida, più il branch con la mia aggiornata?

E poi l'ultima questione, per me forse la più complessa. Un repository... Cioè, ho capito bene che è una specie di... diciamo così, Dropbox, che sincronizza un progetto sul proprio computer e sull'apposita area web di Github. Ovvero, se io creo un'app... Prima la faccio dalla pagina di Github, poi in un qualche modo ne scarico una versione in locale, costantemente sincronizzata, quindi lavoro sempre in locale, giusto?
E che client permette questa sincronizzazione?
Oppure non ho capito una beata mazza, e non si lavora così?

So che è tanta roba. Grazie a chi avrà la pazienza.

Gabry.

--
Gabriele Battaglia, IZ4APU (Libero)
Sent from TB on Windows 10, Genus Bononiae's computer.

Join nvda-it@groups.io to automatically receive all group messages.