Cominciamo con il repository git. Creeremo una cartella chiamata Progetto.git e inizializzalo per diventare il repository remoto:
progetto $ mkdir.idiota
Progetto CD $.idiota/
$ git init - -cura
Repository git vuoto inizializzato in/utenti/zakh_eecs/_work/apprendimento/git_remote_repository/
progetto.idiota/
Ora vai in una nuova posizione in cui è possibile creare una cartella pulita. Crea la cartella Project_Source e inizializzalo per Git:
$ mkdir Project_source
$ CD Project_source
$ git init
Repository git vuoto inizializzato in/utenti/zakh_eecs/_work/apprendimento/git_branching_source/
Project_source/.idiota/
$ touch readme.TXT
$ git aggiungi -a
$ git commit -m "commit iniziale"
[Master (Root-Commit) 176134f] Committe iniziale
1 file modificato, 0 inserzioni (+), 0 delezioni (-)
Crea modalità 100644 Readme.TXT
Project_setup è una directory git con readme.file txt. Tuttavia, non è collegato al nostro repository remoto. Imposta il progetto.Git sarà il repository remoto per Project_Source. Possiamo raggiungere questo obiettivo attraverso il seguente comando:
$ git remote aggiungi origine/utenti/zakh_eecs/_work/apprendimento/git_remote_repository/progetto.idiota
$ git Push Origin Master
Contare gli oggetti: 3, fatto.
Oggetti di scrittura: 100% (3/3), 213 byte | 0 byte/s, fatto.
Totale 3 (Delta 0), riutilizzato 0 (Delta 0)
A/utenti/zakh_eecs/_work/apprendimento/git_remote_repository/progetto.idiota
* [New Branch] Master -> Master
Con il comando Git Remote Add Origin, abbiamo creato la connessione tra il progetto.Git e Project_Source. Con il comando Master Origin Git Push, abbiamo spinto il nostro ramo principale nel repository remoto.
Controlliamo i nostri filiali (ancora nella cartella Project_Source):
$ git filiale
* maestro
$ git branch -r
Origine/Master
$ git branch -a
* maestro
Remote/Origine/Master
Il primo comando mostra solo la filiale 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 di filiali $ git
$ git branch hotfix
$ git branch sperimentale
$ git branch -a
sviluppo
sperimentale
hotfix
* maestro
Remote/Origine/Master
Abbiamo creato filiali chiamati Sviluppo, Hotfix e Sperimental. Si stanno presentando nella nostra lista delle filiali locali. Ma nei telecomandi/origine, c'è solo il ramo principale perché è l'unico che abbiamo spinto. The Star (*) Master significa che siamo ancora nella filiale locale. Andiamo nel ramo di sviluppo, commettiamo cambiamenti e spingiamo tali modifiche al repository remoto.
$ git checkout Development
Passato allo sviluppo del ramo
$ echo ABC> Readme.TXT
$ git aggiungi -a
$ git commit -m "ramo di sviluppo modificato"
[Sviluppo dd9933e] ramo di sviluppo modificato
1 file modificato, 1 inserzione (+)
$ git Push Origin Development
Contare gli oggetti: 3, fatto.
Oggetti di scrittura: 100% (3/3), 257 byte | 0 byte/s, fatto.
Totale 3 (Delta 0), riutilizzato 0 (Delta 0)
A/utenti/zakh_eecs/_work/apprendimento/git_remote_repository/progetto.idiota
* [New Branch] Sviluppo -> Sviluppo
Controlliamo tutti i rami ora:
$ git branch -a
* sviluppo
sperimentale
hotfix
maestro
Remote/Origine/Sviluppo
Remote/Origine/Master
Vediamo che siamo nel ramo di sviluppo locale, ma esiste anche un ramo di sviluppo remoto. Quando abbiamo spinto i nostri cambiamenti con Git Push Origin Development, ha creato il ramo di sviluppo in telecomandi/origine.
Note ora uscite dal progetto_source e troviamo un posto nuovo dove possiamo avere una nuova cartella. Qui cloneremo il repository remoto con il seguente comando:
$ git clone/utenti/zakh_eecs/_work/apprendimento/git_remote_repository/progetto.idiota
Cloning in "Project" ..
Fatto.
Abbiamo clonato una nuova copia chiamata Project from Project.idiota. Entra nella cartella del progetto e controlla i rami:
Progetto CD $
$ git filiale
* maestro
Quando Git crea un clone iniziale da un repository remoto, ottiene solo il ramo principale. Se utilizziamo l'opzione -A, vediamo:
$ git branch -a
* maestro
Remote/Origine/Head -> Origine/Master
Remote/Origine/Sviluppo
Remote/Origine/Master
Si noti che non esiste un ramo di sviluppo locale. Inoltre, non abbiamo mai spinto Hotfix e rami sperimentali da Project_Source a Project.git, quindi non li vediamo. Il repository remoto ha filiali master e di sviluppo (telecomandi/origine/testa -> origine/maestro non è un ramo, ti sta solo dicendo dove punta la testa).
Ottiamo il ramo di sviluppo nel nostro ambiente di lavoro:
$ git fetch --ally
Fetching Origin
$ git checkout Development
Sviluppo delle filiali impostato per tenere traccia dello sviluppo remoto delle filiali dall'origine.
Passato a un nuovo ramo "Sviluppo"
Se stai usando una versione precedente di GIT, potresti dover usare:
$ git Checkout Development Origin/Development
Ora, se usiamo il comando Branch, otteniamo:
$ git branch -a
* sviluppo
maestro
Remote/Origine/Head -> Origine/Master
Remote/Origine/Sviluppo
Remote/Origine/Master
Possiamo apportare modifiche al ramo di sviluppo, commettere le modifiche e quindi spingerlo utilizzando il comando di sviluppo di origini push git.
Insomma
Quando lavori con GitHub e Bitbucket, è possibile utilizzare HTTPS o SSH Link per connettersi al repository remoto. Quindi impostarai la tua origine su quei collegamenti. Ma i principi del ramo remoto sono gli stessi descritti qui.