Krenimo od Git spremišta. Stvorit ćemo mapu koja se zove projekt.git i inicijalizirajte ga da postane udaljeno spremište:
$ mkdir projekt.git$ cd projekt.git /
$ git init --bare
Inicijalizirano prazno Git spremište u / Users / zakh_eecs / _work / LearnGIT / git_remote_repository /
projekt.git /
Sada idite na novo mjesto gdje možete stvoriti čistu mapu. Stvorite mapu project_source i inicijalizirajte je za Git:
$ mkdir project_source$ cd projektni_izvor
$ git init
Inicijalizirano prazno Git spremište u / Users / zakh_eecs / _work / LearnGIT / git_branching_source /
izvor_projekta /.git /
$ touch ReadMe.txt
$ git dodaj -A
$ git commit -m "Početno predavanje"
[master (root-commit) 176134f] Početno predavanje
Promijenjena je 1 datoteka, 0 umetanja (+), 0 brisanja (-)
način stvaranja 100644 ReadMe.txt
Project_setup je Git direktorij s ReadMeom.txt datoteku. Međutim, nije povezan s našim udaljenim spremištem. Postavimo projekt.git biti udaljeno spremište za project_source. To možemo postići sljedećom naredbom:
$ git remote add origin / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git$ git push master master
Brojanje predmeta: 3, gotovo.
Zapisivanje objekata: 100% (3/3), 213 bajtova | 0 bajtova / s, gotovo.
Ukupno 3 (delta 0), ponovno upotrijebljena 0 (delta 0)
U / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
* [nova grana] master -> master
Pomoću naredbe git remote add origin stvorili smo vezu između projekta.git i izvor_projekta. Uz naredbu git push origin master, gurnuli smo našu glavnu granu u udaljeno spremište.
Provjerimo naše grane (još uvijek u mapi project_source):
$ git grana* ovladati; majstorski
$ git grana -r
podrijetlo / gospodar
$ git grana -a
* ovladati; majstorski
daljinski upravljači / podrijetlo / master
Prva naredba prikazuje samo lokalnu granu. Opcija -r prikazuje udaljenu granu. A opcija -a prikazuje i lokalno i udaljeno.
Stvorimo nekoliko grana u našem radnom direktoriju:
$ git razvoj grane$ git hitni popravak grane
$ git grana eksperimentalno
$ git grana -a
razvoj
eksperimentalni
hitni popravak
* ovladati; majstorski
daljinski upravljači / podrijetlo / master
Stvorili smo grane pod nazivom razvoj, hitni popravak i eksperimentalno. Oni se pojavljuju na našem popisu lokalnih podružnica. Ali u daljinskim upravljačima / izvoru postoji samo glavna grana, jer je to jedina koju smo gurnuli. Zvijezda (*) master znači da smo još uvijek u lokalnoj grani master. Krenimo u razvojnu granu, počinimo promjene i guramo te promjene u udaljeno spremište.
Razvoj $ git blagajnePrebačeno na "razvoj" grane
$ echo abc> ReadMe.txt
$ git dodaj -A
$ git commit -m "Izmijenjena grana razvoja"
[razvoj dd9933e] Izmijenjena grana razvoja
1 datoteka promijenjena, 1 umetanje (+)
$ git push razvoj porijekla
Brojanje predmeta: 3, gotovo.
Zapisivanje predmeta: 100% (3/3), 257 bajtova | 0 bajtova / s, gotovo.
Ukupno 3 (delta 0), ponovno upotrijebljena 0 (delta 0)
U / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
* [nova grana] razvoj -> razvoj
Provjerimo sada sve grane:
$ git grana -a* razvoj
eksperimentalni
hitni popravak
ovladati; majstorski
daljinski upravljači / podrijetlo / razvoj
daljinski upravljači / podrijetlo / master
Vidimo da smo u lokalnoj razvojnoj grani, ali postoji i udaljena razvojna grana. Kada smo progurali naše promjene razvojem git push origin, stvorio je razvojnu granu u daljinskim upravljačima / izvoru.
Izađimo sada iz izvora_projekta i pronađimo svježe mjesto na kojem možemo dobiti novu mapu. Ovdje ćemo klonirati udaljeno spremište sljedećom naredbom:
$ git clone / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.gitKloniranje u 'projekt' ..
gotovo.
Klonirali smo novu kopiju nazvanu projekt iz projekta.git. Uđite u mapu projekta i provjerite grane:
$ cd projekt$ git grana
* ovladati; majstorski
Kada Git napravi početni klon iz udaljenog spremišta, dobiva samo glavnu granu. Ako upotrijebimo opciju -a, vidjet ćemo:
$ git grana -a* ovladati; majstorski
daljinski upravljači / podrijetlo / GLAVA -> podrijetlo / master
daljinski upravljači / podrijetlo / razvoj
daljinski upravljači / podrijetlo / master
Primijetite da ne postoji lokalna razvojna grana. Također, nikada nismo gurali hitne ispravke i eksperimentalne grane s project_source na projekt.git, pa ih ne vidimo. Udaljeno spremište ima master i razvojne grane (daljinski upravljači / izvor / HEAD -> origin / master nije grana, samo vam govori kamo HEAD pokazuje).
Uvedimo razvojnu granu u svoje radno okruženje:
$ git fetch - sveDohvaćanje podrijetla
Razvoj $ git blagajne
Razvoj podružnica postavljen za praćenje razvoja udaljenih podružnica od porijekla.
Prebačen na novu granu 'razvoj'
Ako koristite stariju verziju Gita, možda ćete morati koristiti:
$ git checkout razvojno podrijetlo / razvojSada ako koristimo naredbu grana, dobit ćemo:
$ git grana -a* razvoj
ovladati; majstorski
daljinski upravljači / podrijetlo / GLAVA -> podrijetlo / master
daljinski upravljači / podrijetlo / razvoj
daljinski upravljači / podrijetlo / master
Možemo napraviti promjene u razvojnoj grani, izvršiti promjene, a zatim ih gurnuti pomoću naredbe za razvoj git push origin.
U zaključku
Kada radite s GitHubom i BitBucketom, možete koristiti HTTPS ili SSH vezu za povezivanje s udaljenim spremištem. Tako ćete postaviti svoje podrijetlo tim vezama. Ali principi udaljene grane isti su kao što je ovdje opisano.
Daljni studiji:
- https: // git-scm.com / docs / git-grana
- https: // git-scm.com / book / en / 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 /