Idiota

Git Mostra rami remoti

Git Mostra rami remoti
La capacità di Git di creare facilmente rami è un'ottima funzionalità. Tuttavia, quando si tratta di filiali locali e remote, può diventare un po' complicato. Impostiamo una situazione in cui creeremo il nostro repository Git che si comporterà come un repository remoto. Quindi creeremo e commettiamo branch nel nostro repository remoto da project_source. Dopodiché, cloneremo il repository remoto e giocheremo con i rami. L'esercizio dovrebbe anche darti un'idea di come funzionano i repository remoti come GitHub e BitBucket. Puoi visualizzarlo come segue:

Iniziamo con il repository Git. Creeremo una cartella chiamata progetto.git e inizializzalo per diventare il repository remoto:

$ mkdir progetto.idiota
$ progetto cd.idiota/
$ git init --bare
Repository Git vuoto inizializzato in /Users/zakh_eecs/_work/LearnGIT/git_remote_repository/
progetto.idiota/

Ora vai in una nuova posizione in cui puoi creare una cartella pulita. Crea la cartella project_source e inizializzala per Git:

$ mkdir project_source
 
$ cd sorgente_progetto
 
$ git init
Repository Git vuoto inizializzato in /Users/zakh_eecs/_work/LearnGIT/git_branching_source/
sorgente_progetto/.idiota/
 
$ tocca Leggimi.TXT
 
$ git add -A
 
$ git commit -m "Commit iniziale"
[master (root-commit) 176134f] commit iniziale
1 file modificato, 0 inserimenti(+), 0 eliminazioni(-)
crea modalità 100644 Leggimi.TXT

Il project_setup è una directory Git con ReadMe.file txt. Tuttavia, non è connesso al nostro repository remoto. Impostiamo il progetto.git come repository remoto per project_source. Possiamo ottenere ciò tramite il seguente comando:

$ git remote add origin /Users/zakh_eecs/_work/LearnGIT/git_remote_repository/project.idiota
 
$ git push origine master
Conteggio oggetti: 3, fatto.
Oggetti in scrittura: 100% (3/3), 213 byte | 0 byte/s, fatto.
Totale 3 (delta 0), riutilizzato 0 (delta 0)
A /Users/zakh_eecs/_work/LearnGIT/git_remote_repository/project.idiota
* [nuovo ramo]      master -> master

Con il comando git remote add origin, abbiamo creato la connessione tra progetto.git e project_source. Con il comando git push origin master, abbiamo inviato il nostro ramo master al repository remoto.

Controlliamo i nostri rami (sempre nella cartella project_source):

$ git branch
* maestro
 
$ git branch -r
origine/maestro
 
$ git ramo -a
* maestro
telecomandi/origine/master

Il primo comando mostra solo il ramo locale. L'opzione -r mostra il ramo remoto. E l'opzione -a mostra sia locale che remoto.

Creiamo alcuni rami nella nostra directory di lavoro:

Sviluppo del ramo $ git
 
$ git branch hotfix
 
$ git branch sperimentale
 
$ git ramo -a
sviluppo
sperimentale
aggiornamento rapido
* maestro
telecomandi/origine/master

Abbiamo creato branch chiamati sviluppo, hotfix e sperimentale. Stanno comparendo nella nostra lista di filiali locali. Ma nei telecomandi/origine, c'è solo il ramo principale perché è l'unico che abbiamo spinto. Il master star(*) significa che siamo ancora nel ramo master locale. Entriamo nel ramo di sviluppo, eseguiamo il commit delle modifiche e inseriamo tali modifiche nel repository remoto.

$ git checkout sviluppo
Passato al ramo "sviluppo"
 
$ echo abc > Leggimi.TXT
 
$ git add -A
 
$ git commit -m "Ramo di sviluppo modificato"
[sviluppo dd9933e] Ramo di sviluppo modificato
1 file modificato, 1 inserimento(+)
 
$ git push origin sviluppo
Conteggio oggetti: 3, fatto.
Scrittura di oggetti: 100% (3/3), 257 byte | 0 byte/s, fatto.
Totale 3 (delta 0), riutilizzato 0 (delta 0)
A /Users/zakh_eecs/_work/LearnGIT/git_remote_repository/project.idiota
* [nuovo ramo]      sviluppo -> sviluppo

Controlliamo ora tutti i rami:

$ git ramo -a
* sviluppo
sperimentale
aggiornamento rapido
maestro
telecomandi/origine/sviluppo
telecomandi/origine/master

Vediamo che siamo nel ramo dello sviluppo locale, ma c'è anche un ramo dello sviluppo remoto. Quando abbiamo inviato le nostre modifiche con git push origin development, è stato creato il ramo di sviluppo in remotes/origin.

Ora usciamo da project_source e troviamo un nuovo posto dove possiamo avere una nuova cartella. Qui andremo a clonare il repository remoto con il seguente comando:

$ git clone /Users/zakh_eecs/_work/LearnGIT/git_remote_repository/project.idiota
Clonazione in "progetto"..
fatto.

Abbiamo clonato una nuova copia chiamata project from project.idiota. Entra nella cartella del progetto e controlla i rami:

$ progetto cd
 
$ git branch
* maestro

Quando Git crea un clone iniziale da un repository remoto, ottiene solo il ramo principale. Se usiamo l'opzione -a, vediamo:

$ git ramo -a
* maestro
telecomandi/origine/HEAD -> origine/master
telecomandi/origine/sviluppo
telecomandi/origine/master

Notare che non esiste un ramo di sviluppo locale. Inoltre, non abbiamo mai trasferito hotfix e branch sperimentali da project_source a project.git, quindi non li vediamo. Il repository remoto ha rami master e di sviluppo (remoti/origine/HEAD -> origine/master non è un ramo, ti sta solo dicendo dove punta l'HEAD).

Portiamo il ramo di sviluppo nel nostro ambiente di lavoro:

$ git fetch --all
Recupero dell'origine
 
$ git checkout sviluppo
Sviluppo della filiale impostato per monitorare lo sviluppo della filiale remota dall'origine.
Passato a un nuovo ramo "sviluppo"

Se stai usando una versione precedente di Git, potresti dover usare:

$ git checkout sviluppo origine/sviluppo

Ora se usiamo il comando branch, otteniamo:

$ git ramo -a
* sviluppo
maestro
telecomandi/origine/HEAD -> origine/master
telecomandi/origine/sviluppo
telecomandi/origine/master

Possiamo apportare modifiche al ramo di sviluppo, eseguire il commit delle modifiche e quindi inviarlo utilizzando il comando di sviluppo git push origin.

In conclusione

Quando lavori con GitHub e BitBucket potresti utilizzare il collegamento HTTPS o SSH per connetterti al tuo repository remoto. Quindi imposterai la tua origine su quei link. Ma i principi del ramo remoto sono gli stessi descritti qui.

Ulteriori studi:

Come installare League Of Legends su Ubuntu 14.04
Se sei un fan di League of Legends, questa è un'opportunità per testare League of Legends. Nota che LOL è supportato su PlayOnLinux se sei un utente L...
Installa l'ultimo gioco di strategia OpenRA su Ubuntu Linux
OpenRA è un motore di gioco di strategia in tempo reale gratuito/libero che ricrea i primi giochi di Westwood come il classico Command & Conquer: Red ...
Installa l'ultimo Dolphin Emulator per Gamecube e Wii su Linux
L'emulatore Dolphin ti consente di giocare ai giochi Gamecube e Wii scelti su Personal Computer Linux (PC). Essendo un emulatore di giochi liberament...