Git è stato creato da Linus Torvalds nel 2005, originariamente come software di controllo della versione per consentire ai contributori di caricare meglio il codice nel kernel Linux. Git è un sistema di controllo della versione. A volte indicato come sistema SCM (gestione del controllo del codice sorgente).
Da allora il suo utilizzo ha superato di gran lunga l'ecosistema Linux ed è utilizzato da milioni di sviluppatori di software in tutto il mondo (il 42,9% di tutti gli sviluppatori di software lo utilizza su qualsiasi altro sistema di controllo della versione). Non è solo per gli sviluppatori di software, i normali joe che vogliono condividere o archiviare cose, ad esempio file di configurazione o siti Web. Git consente loro di avere un luogo in cui archiviare (e, soprattutto, collaborare o unirsi ) il loro contenuto.
Cosa fa esattamente, in parole povere?
Ecco due motivi principali per cui vorresti utilizzare Git:
- Collaborazione :vuoi collaborare su alcuni file, ad esempio uno sviluppatore scrive una riga di codice e un altro sviluppatore scrive due righe di codice. Questo può essere "unito" di nuovo al "server git", in modo che diventi un unico file.
- Controllo/tracciamento della versione :vuoi essere in grado di tenere traccia delle modifiche apportate dagli altri contributori. La capacità di tracciamento ti consentirà di vedere se ci sono errori che devono essere ripristinati.
Un altro motivo è che se stai svolgendo un lavoro che coinvolge in qualche modo lo sviluppo di applicazioni (ad esempio, se sei un programmatore o se sei un amministratore di sistema che deve apportare revisioni ai dati di gestione della configurazione, o semplicemente clonare il codice degli sviluppatori ) – l'utilizzo di Git è il sistema di controllo della versione generalmente accettato al giorno d'oggi. Non sapere come usarlo probabilmente ti metterà in svantaggio professionale.
Git vs Github
Un Git server può essere installato su qualsiasi server Linux. L'accesso richiede generalmente l'uso di git client , che è uno strumento da riga di comando. Maggiori informazioni nella sezione sottostante.
Github è un servizio Git pubblico basato sul Web ampiamente utilizzato per consentire alle persone di lavorare su progetti su Internet. Non è affiliato a Linus Torvalds oa nessuna delle persone del progetto git, è un adattamento basato sul web di un server git. Sfrutta tutti i componenti principali di git e offre ulteriore estensibilità tramite la sua interfaccia web. Il vantaggio principale di github è che è un repository git pubblico a cui puoi ancora connetterti tramite il solito client git. Github offre anche servizi di repository privati, tuttavia questi sono a pagamento.
Sono disponibili anche altri prodotti commerciali che implementano alcuni o tutti i servizi di git, come Atlassian Bitbucket.
Terminologia e comandi importanti
Il comando git client viene immesso nel terminale e ha una serie di opzioni. Scoprirai che git è probabilmente già installato sulla tua macchina Linux. Se non lo è, è una cosa sicura aspettarsi che sia solo un apt-get o un'installazione yum via.
Di seguito sono elencate le più pertinenti. Tienilo a portata di mano perché sarà utile come cheat sheet mentre inizi con Git:
Comando | Descrizione |
clonare | Fa una copia di un repository git. Ad esempio, ogni volta che scarichi elementi da un sito github/git (repository), utilizzerai clone . |
inizia | Inizializza un repository Git vuoto nella directory corrente. es: git init /home/mycode |
stato | Mostra lo stato del repository. Lo farai spesso, così potrai tenere traccia di eventuali modifiche al repository. |
aggiungi | Aggiunge file a un'area di gestione temporanea, in modo che le modifiche possano essere tracciate localmente. Dice a git di iniziare a tenere traccia delle modifiche per il file specificato. Nota che questo non le vincola al ramo, è in un'area di staging locale, ad esempio:
Per aggiungere più file/directory, è necessario parentesi intorno ai caratteri jolly in modo che git ottenga l'elenco dei file prima che la shell operi sul carattere jolly. Questo esempio aggiunge ogni file .jpg in tutte le directory sotto la directory corrente (inclusa la directory corrente):
|
impegnati | Imposta una modifica graduale (aggiunta). Applicare una modifica significa "tutti questi aggiunti Ho finito, portali fuori dall'area di staging e salvali nel mio repository" . È obbligatorio impegnarsi con un messaggio. Il messaggio dovrebbe descrivere a cosa serve il commit, ad esempio, potresti dire di aver aggiunto alcuni jpeg di gatti. |
telecomando | Configura un repository remoto a cui inviare i commit. Tutte le modifiche che hai eseguito localmente possono essere caricate su un repository remoto. Github è un repository remoto, ad esempio. Per inizializzare la tua connessione al server git remoto, usi git remote. Es:
|
spingi | Invia le modifiche salvate a un repository remoto. Dopo aver inizializzato il tuo repository remoto, puoi inviarci le modifiche salvate con push:
|
tira | Unisce le modifiche dal repository remoto con la tua copia locale. Una volta che le persone (o tu) hai eseguito il commit di più modifiche al repository, desideri inviare una richiesta pull per unire le modifiche che hai localmente con il repository upstream (remoto).
|
differenza | Mostra quali differenze ci sono state nel repository dall'ultimo commit. Quando le modifiche vengono salvate nel repository remoto da più di una persona, ci saranno differenze tra ciò che hai archiviato localmente e ciò che si trova sul server remoto. Le differenze sono chiamate diffs . Quando esegui un tiro , questo lo consentirà al tuo locale Per visualizzare le differenze tra il tuo commit più recente e quello esistente nel repository remoto, puoi usare il puntatore HEAD. HEAD è semplicemente un indicatore di posizione, per impostazione predefinita punta al tuo commit recenti.
L'output mostrerà le differenze tra la tua copia di qualsiasi file modificato e la copia remota (addizioni e sottrazioni). Per vedere le differenze tra i file nella tua gestione temporanea (aggiungi ed) area e i file locali sul tuo PC, utilizza |
paga | Ripristina un commit precedente o cambia branch. Diciamo solo che hai eseguito un commit di file.txt che hai deciso non andava bene, e volevi tornare a una versione precedente del commit, lo avresti ripristinato in questo modo:
Per modificare un ramo, specifica il nome del ramo (piuttosto che utilizzare il — o fornire un nome file da ripristinare):
|
succursale | Crea una nuova copia (ramo). Il comando elimina anche o elenca i rami presenti. Per ulteriori informazioni su cos'è un "ramo", consulta la terminologia di seguito. L'esempio seguente crea un nuovo ramo chiamato "nuovo ramo":
L'esempio seguente elimina 'newbranch ':
|
rm | Rimuove i file dal ramo corrente, così come il disco locale. Per rimuovere tutti i file, usa rm proprio come faresti con un add:
|
unisci | Unisce un ramo in un altro. Come esempio pratico, proseguendo dal rm esempio di comando sopra, supponiamo che tu abbia eseguito un rm *.txt dal ramo newbranch . Se desideri unire la modifica al master branch, per prima cosa tornerai al master branch emettendo git checkout master, quindi utilizzare il comando merge per unire le differenze da newbranch al ramo corrente (master ). La maggior parte dei team di sviluppatori lavorerà sul proprio codice in rami separati prima di unirli al ramo principale alla fine della giornata.
|
ripristina | Ripristina (rimuove) qualsiasi modifica in fasi. Ad esempio, se hai eseguito un git add file.txt, ma prima di eseguire il commit, decidi che file.txt non deve essere eseguito, esegui il comando reset, ad esempio:git reset file.txt |
registro | Mostra un diario di tutte le modifiche salvate. Es:git log |
Terminologia
Alcuni termini che dovrai capire sono:
- Richieste pull:quando un team sta lavorando su modifiche al codice, viene utilizzata una richiesta pull per segnalare al responsabile della manutenzione del repository di unire una nuova modifica.
- Branch – Un branch è semplicemente una copia di un repository esistente. Per impostazione predefinita, ogni repository inizia con un 'Master ' ramo. Il master è il nome del ramo principale.
- Il ramo principale di solito non è il ramo di lavoro, viene spesso utilizzato come ramo quando tutti gli sviluppatori hanno completato (impegnato) il loro codice. Viene quindi unito a esso alla fine della giornata da altri rami di lavoro.
- Fork:un fork è una copia duplicata del repository di qualcuno. Ti consente di apportare le modifiche che desideri al codice senza influire sul progetto/repository originale. Viene utilizzato per creare una nuova applicazione dalla base di codice originale o come scratch funzionante per consentire a uno sviluppatore di proporre modifiche al progetto.
- Staging:quando un file viene aggiunto (con git add) si dice che sia messo in scena o nel processo di staging. Quando esegui il commit della modifica, non viene più eseguita la fase.
- La gestione temporanea è conservata sul tuo computer locale, non in un repository remoto.
- In un esempio pratico, supponiamo di avere un mucchio di file che si trovano su un repository remoto
Vedi anche
La pagina di manuale integrata chiamata 'gittutorial' è un tutorial ben scritto che ti guida attraverso i dettagli dell'utilizzo di Git. Per visualizzarlo, inserisci il seguente comando:
man 7 gittutorial
I seguenti collegamenti Web sono altamente consigliati:
- Tutorial interattivo (trygit)
- Sito web ufficiale
- sito web github