Idiota

Nozioni di base del ramo Git

Nozioni di base del ramo Git

Nozioni di base sulla ramificazione di Git

La capacità di ramificare facilmente è una delle migliori caratteristiche di Git. La creazione di rami in altri sistemi di controllo della versione può essere costosa in termini di spazio e requisiti di elaborazione. La ramificazione di Git è efficiente. Quindi gli utenti sono più inclini a usare i rami in Git.

Un flusso di lavoro ramificato

Supponiamo che tu abbia iniziato un nuovo progetto chiamato myvideogame. Ha un solo ramo. Il nome predefinito del ramo iniziale in Git si chiama master. Viene creato automaticamente.  Creiamo il repository Git di myvideogame.

$ mkdir miovideogioco
$ cd miovideogioco
$ git init

Hai creato un repository Git vuoto. Aggiungiamo il nostro design.txt con del testo dentro.

$ echo "Decisione di progettazione 1: Aggiungi immagini" >> design.TXT
$ echo "Decisione progettuale 2: scrivere codice" >> design.TXT
$ git add -A
$ git commit -m "C0: Aggiunto file di disegno"

Aggiungiamo altre modifiche:

$ echo "Decisione di progettazione 3: gioco di prova" >> design.TXT
$ git add -A
$ git commit -m "C1: File di disegno modificato"

Se controlli la cronologia, troverai:

$ git log --oneline
6a09bd6 C1: File di disegno modificato
5f18d89 C0: Aggiunto file di disegno

Se controlli lo stato di Git e tutti i rami che sono stati creati (usando il comando: git branch -a), vedrai:

$ git stato
Sul maestro di filiale
niente da eseguire, pulizia della directory di lavoro
 
$ git ramo -a
* maestro

Attualmente, hai la seguente situazione:

Hai fatto due commit nel ramo master.

Supponiamo che tu abbia trovato bug nei test del gioco, ma non vuoi affrontare il problema nel ramo principale perché non vuoi ancora fare confusione con il design originale. Quindi puoi creare un nuovo ramo chiamato bugfix:

$ git branch bugfix

Ora, se controlli tutti i rami:

$ git ramo -a
risoluzione del problema
* maestro

Ora hai creato un nuovo ramo chiamato bugfix. La situazione può essere visualizzata come questa:

Tuttavia, la stella (*) accanto al ramo master significa che sei ancora nel master. Se apporti modifiche, andrà comunque nel ramo principale. Puoi utilizzare il comando checkout per modificare i rami:

$ git checkout bugfix
Passato al ramo 'bugfix'

Puoi controllare quale ramo stai utilizzando con stato o il comando "branch -a":

$ git stato
Bugfix sul ramo On
niente da eseguire, pulizia della directory di lavoro
 
$ git ramo -a
* risoluzione del problema
maestro

Ora, correggiamo il bug:

$ echo "Bug Fix 1" >> design.TXT
$ git add -A
$ git commit -m "C2: Bug risolto 1"

Hai creato una situazione come questa:

Il ramo master non ha il cambio C2. Puoi verificarlo facilmente controllando la cronologia dei due rami.

Innanzitutto, la storia del ramo bugfix:

$ git stato
Bugfix sul ramo On
niente da eseguire, pulizia della directory di lavoro
 
$ git log --oneline
e8f615b C2: Bug risolto 1
6a09bd6 C1: File di disegno modificato
5f18d89 C0: Aggiunto file di disegno

Quindi puoi passare al ramo principale e controllarne la cronologia:

$ git checkout master
Passato al ramo 'master'
 
$ git stato
Sul maestro di filiale
niente da eseguire, pulizia della directory di lavoro
 
$ git log --oneline
6a09bd6 C1: File di disegno modificato
5f18d89 C0: Aggiunto file di disegno

Puoi vedere che il ramo principale non ha le modifiche dal ramo bugfix.

Puoi sempre creare una nuova filiale dalla filiale attuale in cui ti trovi. Supponiamo di voler creare un altro ramo che conterrà funzionalità sperimentali. Puoi creare il ramo dal master e aggiungervi funzionalità sperimentali:

$ git stato
Sul maestro di filiale
niente da eseguire, pulizia della directory di lavoro
 
$ git branch sperimentale
$ git checkout sperimentale
Passato al ramo "sperimentale"
$ git stato
Sul ramo sperimentale
niente da eseguire, pulizia della directory di lavoro
 
$ echo "Aggiunta di funzioni all'esperimento" >> design.TXT
 
$ git add -A
 
$ git commit -m "C3: Aggiunte funzionalità sperimentali"
[sperimentale 637bc20] C3: Aggiunte funzioni sperimentali
1 file modificato, 1 inserimento(+)

Se controlli la cronologia del tuo ramo sperimentale, vedrai:

$ git stato
Sul ramo sperimentale
niente da eseguire, pulizia della directory di lavoro
 
$ git log --oneline
637bc20 C3: Aggiunte funzionalità sperimentali
6a09bd6 C1: File di disegno modificato
5f18d89 C0: Aggiunto file di disegno

Noterai che non hai il commit C2 che è stato creato nel ramo bugfix. Poiché il ramo sperimentale viene creato dal ramo principale, non vede le modifiche alla correzione dei bug. Hai la seguente situazione:

Conclusione

Congratulazioni! Hai imparato a ramificare.

I rami Git sono facili e veloci da realizzare. È uno dei motivi alla base della popolarità di Git. Se vuoi diventare un utente esperto di Git, devi diventare esperto nel branching di Git.

Ulteriori studi:

https://git-scm.com/book/it/v2/Git-Branching-Basic-Branching-and-Merging

Recensione del mouse wireless Microsoft Sculpt Touch
Ho letto di recente del Microsoft Scolpisci il tocco mouse wireless e ho deciso di acquistarlo. Dopo averlo usato per un po', ho deciso di condividere...
Trackpad e puntatore del mouse su schermo AppyMouse per tablet Windows
Gli utenti di tablet spesso mancano il puntatore del mouse, soprattutto quando sono abituati a usare i laptop laptop. Gli smartphone e i tablet touchs...
Il pulsante centrale del mouse non funziona in Windows 10
Il tasto centrale del mouse ti aiuta a scorrere lunghe pagine web e schermate con molti dati. Se si ferma, finirai per usare la tastiera per lo scorri...