Domanda Importanza GIT

lory22rg

Utente Iron
10 Gennaio 2020
32
7
3
17
Buongiorno a tutti, ho provato a cercare nel forum ma penso di non aver trovato risposta a ciò, a cosa serve GIT in linux ? è fondamentale ? senza di esso potrebbero esserci "buchi" nell'apprendimento della shell di linux ? grazie in anticipo !
 
Forse intendiamo due cose diverse di cui non sono nemmeno a conoscenza dell'esistenza, ma GIT è un sistema di versioning che ti permette di "fotografare" il codice in un certo istante creando una sequenza di commit (le tue fotografie) in modo da avere uno storico di tutte le modifiche effettuate sul codice.

Sul tuo PC vedrai il codice allo stato attuale. GIT ti permette di revisionare ciò che è stato in certo momento (linee di codice aggiunte/rimosse/modificate) in modo da poter fare un rollback se necessario. Poi ci sono i concetti di master e branch (rami di sviluppo) ma il discorso che ci sarebbe da fare è enorme.
Leggiti questo: GIT su Wikipedia

GIT per imparare ad usare la shell non c'entra assolutamente nulla. Ok, lo puoi usare anche da shell invece che da interfaccia grafica ma non serve all'apprendimento.
Considera comunque che GIT per un programmatore è il cuore. Se non lo usi non vai da nessuna parte
 
  • Mi piace
Reazioni: nostyn
Ultima modifica:
Buongiorno a tutti, ho provato a cercare nel forum ma penso di non aver trovato risposta a ciò, a cosa serve GIT in linux ? è fondamentale ? senza di esso potrebbero esserci "buchi" nell'apprendimento della shell di linux ? grazie in anticipo !
Git e' un software per il versionamento e la revisione del codice. Spiegato in soldoni: permette di tenere traccia degli aggiornamenti a retroso di una repo (chiamiamola progetto), dove ogni mico-aggiornamento (commit) ti permette di specificarne la modifica apportata. La vera potenzialita' di Git e la ragione per cui e' stato realizzato (grazie Linus), e' per permettere a piu' persone di lavorare allo stesso codice. E' fondamentale? Si, se hai intenzione di lavorare con un team ;)

edit: Non vada preso alla lettera cio' che ho scritto, e' una rappresentazione a grandissime linee, la descrizione di SmartApp e' decisamente piu' minuziosa e fedele a cio' che e' davvero GIT
 
  • Mi piace
Reazioni: lory22rg
Grazie, sono riuscito a capire in linea di massima quindi attraverso di esso è possibile ,se ho capito bene, trasferire modifiche di un file (anche di una repository, tra diverse persone, giusto ?
Messaggio unito automaticamente:

Forse intendiamo due cose diverse di cui non sono nemmeno a conoscenza dell'esistenza, ma GIT è un sistema di versioning che ti permette di "fotografare" il codice in un certo istante creando una sequenza di commit (le tue fotografie) in modo da avere uno storico di tutte le modifiche effettuate sul codice.

Sul tuo PC vedrai il codice allo stato attuale. GIT ti permette di revisionare ciò che è stato in certo momento (linee di codice aggiunte/rimosse/modificate) in modo da poter fare un rollback se necessario. Poi ci sono i concetti di master e branch (rami di sviluppo) ma il discorso che ci sarebbe da fare è enorme.
Leggiti questo: GIT su Wikipedia

GIT per imparare ad usare la shell non c'entra assolutamente nulla. Ok, lo puoi usare anche da shell invece che da interfaccia grafica ma non serve all'apprendimento.
Considera comunque che GIT per un programmatore è il cuore. Se non lo usi non vai da nessuna parte
ok grazie, quindi se ho capito bene permette di vedere i cambiamenti tra una precedente persione ed una nuova per aiutare ad effettuare delle modifiche
P.s quindi consigliate di impararlo ? anche se momentaneamente è solo a mio scopo didattico e non per lavoro in "team" diciamo anche se non penso dia la sua funzione principale :)
 
Lavoro personale oppure in team non fa differenza. Se vuoi programmare DEVI imparare ad usarlo. Agli inizi magari non ti sarà evidente ma con il crescere del progetto capirai la sua reale utilità.

Prendiamo per esempio il mio progetto FantaAste, un'applicazione attualmente per Android.
E' un progetto su cui ho lavorato per parecchio tempo e nel tempo è maturato sempre di più. Sono partito da una base e pian piano ho aggiunto sempre più funzionalità oppure aggiornato il codice per usare le ultime tecnologie disponibili.
Ogni volta che devo fare una modifica scrivo il codice e poi faccio la commit per registrare ciò che ho fatto e fare una fotografia delle modifiche. In questo modo quando passo alla funzionalità successiva è come se avessi un punto di salvataggio come succedeva in molti giochi del passato. Se morivi tornavi al checkpoint e ripartivi da li. Nel caso della programmazione il concetto è simile. Se inizi a scrivere del codice e poi non ci salti più fuori, puoi resettare tutto e ripartire dall'ultimo punto di salvataggio senza perdere tutto ciò che è stato fatto prima.
Senza usare GIT sarebbe un macello. Dovresti ricordarti ogni singola riga cosa, come e perchè l'hai cambiata. Impossibile.

Considera un repository come uno spazio su un server centralizzato. Ogni volta che fai una "commit" e "push" delle modifiche, i file modificati/aggiunti/rimossi vengono salvati su uno spazio unico. Tutti i membri del team che lavorano sul progetto faranno una copia in locale ("clone" del repository) e lavoreranno in modo indipendente. Ogni loro modifica viene poi inviata quando committano e agli altri verrà una notifica per avvisarli che ci sono delle "pull" da fare.

Capisco che così sembra incomprensibile ma vedrai che con un po' di pratica impari velocemente. Per usarlo a livello basico ci vuole veramente poco.

Esempio utilizzo GIT durante gli sviluppi dell'app per iOS
Schermata 2020-05-13 alle 11.11.37.png
 
Mi associo completamente, anche solo nella stesura di piccoli progetti, mi sono trovato davvero bene a creare e lavorare su una repo locale. Come dice SmartApp e' sicuramente un must per un programmatore. C'e' ad esempio un progetto che ho messo da parte dall'inizio della quarantena, eppure se vado a leggere i log dei commit capisco al volo su cosa stavo lavorando in quel momento e per quale ragione ho apportato determinale aggiunte/modifiche. Investici del tempo, sara' assolutamente ripagato a breve termine.
 
cosa serve GIT in linux?
Ti hanno già ampiamente risposto ma, in poche parole, se non lavori in un team il suo utilizzo principale è quello di un CTRL+Z (annulla le ultime modifiche) avanzato. È pensato per essere usato da programmatori, quindi funziona bene solo con file di testo: quelli che puoi aprire con il blocco note, non quelli che apri con word. Non è un programma di Linux, se programmi lo userai qualunque sia la tua piattaforma.

è fondamentale?
Se non sai già programmare (contiamo anche i linguaggi di markup come HTML, Markdown e Latex) è praticamente inutile. Prima impari a programmare e poi impari ad usare git, non mi sembra sensato fare il contrario anche se si può tranquillamente fare. Inizia ad essere molto utile sui progetti medio/grandi che ti richiedono un po' di tempo prima di finirli. Se stai imparando a programmare e i tuoi programmini li finisci in un giorno o due non è particolarmente utile usare git. Una volta che lo saprai già usare poi magari ti viene voglia di applicarlo anche ai programmi stupidi, ma impararlo apposta per quello non mi sembra il caso.

senza di esso potrebbero esserci "buchi" nell'apprendimento della shell di linux?
Se non sai programmare e attualmente vuoi concentrarti sull'imparare a muoverti con il terminale, impara cos'è git (te l'hanno già spiegato) e impara ad usare i comandi git clone e git pull: uno serve per scaricare il progetto (repository) e l'altro serve per aggiornarlo all'ultima versione. Tutti gli altri comandi (sono tanti e anche piuttosto complessi!) possono aspettare. Con questi due comandi non usi la funzionalità di CTRL+Z avanzato, ma lo usi come una sottospecie di download manager. Dopo che avrai imparato almeno un linguaggio di programmazione, ammesso che ti interessa imparare a programmare, potrai vedere più in dettaglio come funziona git.

Non buttare carne al fuoco per niente. Dalla tua domanda intuisco che sei ancora a un livello base quindi non mi sento di consigliarti di imparare ad usare git, sarebbe come voler imparare ad usare il trapano quando non sai ancora come funziona il cacciavite: se lo sapessi già usare magari troveresti anche un posto dove usarlo, ma visto che è così... è meglio se impari prima le basi.
 
  • Mi piace
Reazioni: lory22rg
Grazie mille a tutti, sono riuscito a capire bene in cosa consiste e penso che in futuro ne farò uso data la sua estrema utilità, specialmente con programmi un pò più grandicelli !