Lad os starte med Git-arkivet. Vi opretter en mappe kaldet projekt.git og initialiser det for at blive fjernlageret:
$ mkdir-projekt.git$ cd-projekt.git /
$ git init - kun
Initialiseret tomt Git-arkiv i / Brugere / zakh_eecs / _work / LearnGIT / git_remote_repository /
projekt.git /
Gå nu til en ny placering, hvor du kan oprette en ren mappe. Opret mappen project_source og initialiser den til Git:
$ mkdir-projektkilde$ cd projektkilde
$ git init
Initieret tomt Git-arkiv i / Brugere / zakh_eecs / _work / LearnGIT / git_branching_source /
projektkilde /.git /
$ tryk på ReadMe.txt
$ git add -A
$ git commit -m "Initial Commit"
[master (root-commit) 176134f] Indledende forpligtelse
1 fil ændret, 0 indsættelser (+), 0 sletninger (-)
Opret tilstand 100644 ReadMe.txt
Project_setup er et Git-bibliotek med ReadMe.txt-fil. Det er dog ikke forbundet til vores fjernlager. Lad os starte projektet.git skal være det eksterne lager for project_source. Vi kan opnå dette ved hjælp af følgende kommando:
$ git remote tilføj oprindelse / Brugere / zakh_eecs / _work / LearnGIT / git_remote_repository / projekt.git$ git push oprindelsesmester
Optælling af objekter: 3, færdig.
Skriveobjekter: 100% (3/3), 213 byte | 0 byte / s, færdig.
I alt 3 (delta 0), genbrugt 0 (delta 0)
Til / Brugere / zakh_eecs / _work / LearnGIT / git_remote_repository / projekt.git
* [ny gren] master -> master
Med kommandoen git remote add origin har vi oprettet forbindelsen mellem projektet.git og project_source. Med git push origin master-kommandoen har vi skubbet vores mastergren til det eksterne lager.
Lad os kontrollere vores filialer (stadig i mappen project_source):
$ git gren* mester
$ git gren -r
oprindelse / mester
$ git gren -a
* mester
fjernbetjeninger / oprindelse / master
Den første kommando viser kun den lokale filial. Indstillingen -r viser den eksterne gren. Og indstillingen -a viser både lokal og fjernbetjening.
Lad os oprette et par grene i vores arbejdsmappe:
$ git grenudvikling$ git filial hotfix
$ git gren eksperimentel
$ git gren -a
udvikling
eksperimentel
hotfix
* mester
fjernbetjeninger / oprindelse / master
Vi har oprettet filialer kaldet udvikling, hotfix og eksperimentel. De vises på vores lokale filialiste. Men i fjernbetjeningerne / oprindelsen er der kun mastergren, fordi det er den eneste, vi skubbede. Stjernemesteren (*) betyder, at vi stadig er i den lokale mastergren. Lad os gå ind i udviklingsgrenen, begå ændringer og skubbe disse ændringer til fjernlageret.
$ git checkout udviklingSkiftet til gren 'udvikling'
$ echo abc> ReadMe.txt
$ git add -A
$ git commit -m "Modificeret udviklingsgren"
[udvikling dd9933e] Modificeret udviklingsgren
1 fil ændret, 1 indsættelse (+)
$ git push oprindelsesudvikling
Optælling af objekter: 3, færdig.
Skriveobjekter: 100% (3/3), 257 bytes | 0 byte / s, færdig.
I alt 3 (delta 0), genbrugt 0 (delta 0)
Til / Brugere / zakh_eecs / _work / LearnGIT / git_remote_repository / projekt.git
* [ny gren] udvikling -> udvikling
Lad os kontrollere alle grene nu:
$ git gren -a* udvikling
eksperimentel
hotfix
mestre
fjernbetjeninger / oprindelse / udvikling
fjernbetjeninger / oprindelse / master
Vi ser, at vi er i den lokale udviklingsgren, men der er også en fjernudviklingsgren. Da vi skubbede vores ændringer med git push oprindelsesudvikling, skabte det udviklingsgrenen i fjernbetjeninger / oprindelse.
Lad os nu komme ud af projektkilden og finde et nyt sted, hvor vi kan have en ny mappe. Her skal vi klone det eksterne lager med følgende kommando:
$ git klon / Brugere / zakh_eecs / _work / LearnGIT / git_remote_repository / projekt.gitKloning i 'projekt' ..
Færdig.
Vi har klonet en ny kopi kaldet projekt fra projekt.git. Gå ind i projektmappen og tjek grenene:
$ cd-projekt$ git gren
* mester
Når Git opretter en indledende klon fra et eksternt lager, får det kun mastergrenen. Hvis vi bruger indstillingen -a, ser vi:
$ git gren -a* mester
fjernbetjeninger / oprindelse / HEAD -> oprindelse / master
fjernbetjeninger / oprindelse / udvikling
fjernbetjeninger / oprindelse / master
Bemærk, at der ikke er nogen lokal udviklingsgren. Vi skubbede aldrig hotfix og eksperimentelle grene fra project_source til project.git, så vi kan ikke se dem. Fjernlageret har master- og udviklingsgrene (fjernbetjeninger / oprindelse / HEAD -> origin / master er ikke en gren, det fortæller dig bare, hvor HEAD peger på).
Lad os få udviklingsgrenen ind i vores arbejdsmiljø:
$ git-hentning - altHenter oprindelse
$ git checkout udvikling
Grenudvikling oprettet til at spore fjernudvikling af gren fra oprindelse.
Skiftet til en ny gren 'udvikling'
Hvis du bruger en ældre version af Git, skal du muligvis bruge:
$ git checkout udvikling oprindelse / udviklingNu hvis vi bruger grenkommandoen, får vi:
$ git gren -a* udvikling
mestre
fjernbetjeninger / oprindelse / HEAD -> oprindelse / master
fjernbetjeninger / oprindelse / udvikling
fjernbetjeninger / oprindelse / master
Vi kan foretage ændringer i udviklingsgrenen, begå ændringerne og derefter skubbe den ved hjælp af kommandoen git push origin development.
Afslutningsvis
Når du arbejder med GitHub og BitBucket, kan du bruge HTTPS eller SSH-link til at oprette forbindelse til dit fjernlager. Så du indstiller din oprindelse til disse links. Men principperne for den fjerntliggende gren er de samme som beskrevet her.
Yderligere studier:
- https: // git-scm.com / docs / git-branch
- https: // git-scm.com / book / da / v2 / Git-on-the-Server-Setting-Up-the-Server
- https: // hjælp.github.com / artikler / tilføjelse af et eksisterende projekt til github ved hjælp af kommandolinjen /
- https: // hjælp.github.com / artikler / skubbe-til-en-fjernbetjening /