Začnimo s skladiščem Git. Ustvarili bomo mapo, imenovano projekt.git in ga inicializirajte, da postane oddaljeno skladišče:
$ mkdir projekt.git$ cd projekt.git /
$ git init --bare
Inicializirano prazno repozitorij Git v / Users / zakh_eecs / _work / LearnGIT / git_remote_repository /
projekt.git /
Zdaj pojdite na novo mesto, kjer lahko ustvarite čisto mapo. Ustvarite mapo project_source in jo inicializirajte za Git:
$ mkdir project_source$ cd project_source
$ git init
Inicializirano prazno repozitorij Git v / Users / zakh_eecs / _work / LearnGIT / git_branching_source /
projekt_izvir /.git /
$ touch ReadMe.txt
$ git add -A
$ git commit -m "Začetni prevzem"
[master (root-commit) 176134f] Začetna odobritev
1 datoteka spremenjena, 0 vstavkov (+), 0 izbrisov (-)
ustvari način 100644 ReadMe.txt
Project_setup je Gitov imenik z ReadMe.txt datoteko. Vendar ni povezan z našim oddaljenim skladiščem. Postavimo projekt.git, da je oddaljeno repozitorij za project_source. To lahko dosežemo z naslednjim ukazom:
$ git remote add origin / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git$ git push izvorni mojster
Štetje predmetov: 3, končano.
Pisanje predmetov: 100% (3/3), 213 bajtov | 0 bajtov / s, končano.
Skupaj 3 (delta 0), ponovno uporabljena 0 (delta 0)
V / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
* [nova veja] master -> master
Z ukazom git remote add origin smo ustvarili povezavo med projektom.git in project_source. Z glavnim ukazom git push origin smo svojo glavno vejo potisnili v oddaljeno repozitorij.
Preverimo naše veje (še vedno v mapi project_source):
$ git podružnica* mojster
$ git podružnica -r
izvor / mojster
$ git podružnica -a
* mojster
oddaljeni / izvor / glavni
Prvi ukaz prikazuje samo lokalno vejo. Možnost -r prikazuje oddaljeno vejo. Možnost -a prikazuje tako lokalne kot oddaljene.
Ustvarimo nekaj vej v našem delovnem imeniku:
razvoj $ git podružnicePopravek podružnice $ git
$ git podružnica eksperimentalna
$ git podružnica -a
razvoj
eksperimentalno
hitri popravek
* mojster
oddaljeni / izvor / glavni
Ustvarili smo veje, imenovane razvoj, hitri popravek in eksperimentalno. Prikazani so na našem seznamu lokalnih podružnic. Toda v daljinskem upravljalniku / izvoru je samo glavna veja, ker je to edina potisnjena. Star (*) mojster pomeni, da smo še vedno v lokalni glavni veji. Pojdimo v razvojno vejo, izvedimo spremembe in te spremembe potisnemo v oddaljeno repozitorij.
Razvoj $ git checkoutPreusmerjen na "razvoj"
$ echo abc> ReadMe.txt
$ git add -A
$ git commit -m "Spremenjena razvojna veja"
[razvoj dd9933e] Spremenjena razvojna veja
1 datoteka spremenjena, 1 vstavitev (+)
$ git push razvoj izvora
Štetje predmetov: 3, končano.
Pisanje predmetov: 100% (3/3), 257 bajtov | 0 bajtov / s, končano.
Skupaj 3 (delta 0), ponovno uporabljena 0 (delta 0)
V / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
* [nova veja] razvoj -> razvoj
Preverimo zdaj vse podružnice:
$ git podružnica -a* razvoj
eksperimentalno
hitri popravek
mojster
daljinski upravljalci / izvor / razvoj
oddaljeni / izvor / glavni
Vidimo, da smo v lokalni razvojni veji, obstaja pa tudi oddaljena razvojna veja. Ko smo spremembe potisnili z razvojem git push origin, je ustvaril razvojno vejo v oddaljenih / izvornih.
Pojdimo ven iz projekta_source in poiščimo sveže mesto, kjer bomo lahko dobili novo mapo. Tukaj bomo klonirali oddaljeno repozitorij z naslednjim ukazom:
$ git clone / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.gitKloniranje v 'projekt' ..
Končano.
Klonirali smo novo kopijo, imenovano projekt iz projekta.git. Pojdite v mapo projekta in preverite veje:
$ cd projekt$ git podružnica
* mojster
Ko Git naredi začetni klon iz oddaljenega repozitorija, dobi samo glavno vejo. Če uporabimo možnost -a, vidimo:
$ git podružnica -a* mojster
daljinski upravljalci / izvor / HEAD -> izvor / glavni
daljinski upravljalci / izvor / razvoj
oddaljeni / izvor / glavni
Upoštevajte, da lokalna razvojna veja ne obstaja. Prav tako nikoli nismo prestavljali hitrih popravkov in poskusnih vej od project_source do projekta.git, zato jih ne vidimo. Oddaljeno repozitorij ima glavno in razvojno vejo (oddaljeni / izvor / HEAD -> origin / master ni veja, samo pove, kam kaže HEAD).
Prinesimo razvojno vejo v naše delovno okolje:
$ git fetch --allPridobivanje izvora
Razvoj $ git checkout
Razvoj podružnic, nastavljen za sledenje razvoju oddaljenih podružnic od izvora.
Preusmerjen na novo vejo 'razvoj'
Če uporabljate starejšo različico Gita, boste morda morali uporabiti:
$ git checkout razvojni izvor / razvojZdaj, če uporabimo ukaz podružnice, dobimo:
$ git podružnica -a* razvoj
mojster
daljinski upravljalci / izvor / HEAD -> izvor / glavni
daljinski upravljalci / izvor / razvoj
oddaljeni / izvor / glavni
V razvojno vejo lahko spremenimo, spremembe uredimo in nato potisnemo z ukazom za razvoj git push origin.
V zaključku
Pri delu z GitHubom in BitBucketom lahko uporabite povezavo HTTPS ali SSH za povezavo z oddaljenim skladiščem. Torej boste nastavili izvor teh povezav. Toda načela oddaljene veje so enaka, kot so opisana tukaj.
Nadaljni študij:
- https: // git-scm.com / docs / git-branch
- https: // git-scm.com / book / sl / v2 / Git-on-the-Server-Setting-Up-the-Server
- https: // pomoč.github.com / articles / add-an-existing-project-to-github-using-the-command-line /
- https: // pomoč.github.com / articles / push-to-a-remote /