GNU/Linux >> Linux Esercitazione >  >> Linux

Howto:cos'è Git e Github? Come lo uso e perché dovrebbe interessarmene?

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 .
es:git clone https://github.com/YOUR-USERNAME/YOUR-REPOSITORY.git

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.
eg:git status

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:

git add <filename>

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):

git add '*.jpg'

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.
git commit -m "info about this commit".

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: git remote add origin https://github.com/YOUR-USERNAME/your-repository.git

  • Il nome (o handle ) 'origine' viene utilizzato come riferimento per il repository del progetto remoto. Puoi nominarlo come preferisci, tuttavia è tipico chiamare il tuo principale "origine".
  • Il your-repository.git il file viene creato quando esegui un git init.
spingi

Invia le modifiche salvate a un repository remoto.

Dopo aver inizializzato il tuo repository remoto, puoi inviarci le modifiche salvate con push:
git push -u origin master

  • 'origine' è il nome che hai specificato per la connessione remota.
  • 'master' è il ramo chiamato master (il ramo principale. Maggiori informazioni su questo tra un minuto).
  • l'opzione -u dice a git di ricordare i parametri che hai specificato, quindi devi solo digitare 'git push' la prossima volta.
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).

git pull origin master

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.

git diff HEAD

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 diff --staged

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:

git checkout -- file.txt

  • Il — dice semplicemente che non ci sono più opzioni per l'operazione di pagamento.

Per modificare un ramo, specifica il nome del ramo (piuttosto che utilizzare il — o fornire un nome file da ripristinare):

git checkout <branchname>

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":

git branch newbranch

L'esempio seguente elimina 'newbranch ':

git branch -d 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:

git rm '*.txt'

  • Non dimenticare di impegnarti che cambiano dopo aver emesso il rm!
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.

git merge newbranch

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

Linux
  1. Che cos'è un comando Chown in Linux e come usarlo

  2. Che cos'è un comando cURL e come utilizzarlo?

  3. Redis come cache:come funziona e perché usarlo

  4. Chroot "prigione" - Che cos'è e come usarlo?

  5. Quando e perché dovrei usare Apt-get Update?

Come installare e utilizzare Git nel sistema Linux

Che cos'è Arch User Repository (AUR)? Come utilizzare AUR su Arch e Manjaro Linux?

Che cosa sono i contenitori multi-account di Firefox? Perché e come usarlo?

Cos'è EasyApache e come si usa?

Cos'è la funzionalità della community di ONLYOFFICE e perché dovresti usarla?

Come installare e utilizzare Git su Ubuntu 18.04