Git show eksterne grener

Git show eksterne grener
Gits evne til å lage grener enkelt er en flott funksjon. Når du arbeider med lokale og eksterne grener, kan det imidlertid bli litt komplisert. La oss sette opp en situasjon der vi skal lage vårt eget git -depot som vil oppføre seg som en ekstern repo. Så skal vi lage og forplikte filialer til vårt eksterne depot fra Project_Source. Etter det skal vi klone det eksterne depotet og spille med grenene. Øvelsen skal også gi deg en ide om hvor avsidesliggende depoter som GitHub og Bitbucket Work. Du kan visualisere det som følger:

La oss starte med Git -depotet. Vi oppretter en mappe som heter Project.Git og initialiser det for å bli det eksterne depotet:

$ MKDIR -prosjekt.git
$ CD -prosjekt.git/
$ git init - --fulle
Initialisert tom Git -depot i/brukere/zakh_eecs/_work/learngit/git_remote_repository/
prosjekt.git/

Gå nå til et nytt sted hvor du kan opprette en ren mappe. Lag mappen Project_Source og initialiser den for GIT:

$ MKDIR Project_Source
$ CD Project_Source
$ git init
Initialisert tom Git -depot i/brukere/zakh_eecs/_work/learngit/git_branching_source/
Project_Source/.git/
$ Touch Readme.tekst
$ git add -a
$ git commit -m "initial commit"
[Master (root-commit) 176134f] Initial commit
1 Fil endret, 0 innsettinger (+), 0 delesjoner (-)
Opprett modus 100644 Readme.tekst

Project_setup er en git -katalog med readme.txt -fil. Imidlertid er det ikke koblet til vårt eksterne depot. La oss sette opp prosjekt.Git til å være det eksterne depotet for Project_Source. Vi kan oppnå dette gjennom følgende kommando:

$ git eksternt legg til opprinnelse/brukere/zakh_eecs/_work/learngit/git_remote_repository/prosjekt.git
$ git push origin master
Teller objekter: 3, gjort.
Skrive objekter: 100% (3/3), 213 byte | 0 byte/s, gjort.
Totalt 3 (Delta 0), gjenbrukt 0 (Delta 0)
Til/brukere/zakh_eecs/_work/learngit/git_remote_repository/prosjekt.git
* [ny gren] master -> master

Med Git Remote Add Origin -kommandoen har vi opprettet forbindelsen mellom prosjektet.git og project_source. Med Git Push Origin Master -kommandoen har vi presset mastergrenen vår til det eksterne depotet.

La oss sjekke grenene våre (fremdeles i Project_Source -mappen):

$ git gren
* mester
$ git gren -r
opprinnelse/master
$ git gren -a
* mester
Remotes/Origin/Master

Den første kommandoen viser bare den lokale grenen. Alternativet -r -alternativet viser den eksterne grenen. Og alternativet -et alternativ viser både lokalt og fjerntliggende.

La oss lage noen få grener i arbeidskatalogen vår:

$ git grenutvikling
$ git filial hurtig
$ git gren eksperimentell
$ git gren -a
utvikling
eksperimentell
Hotfiks
* mester
Remotes/Origin/Master

Vi har laget grener som heter Development, Hotfix og Experimental. De dukker opp på vår lokale filialliste. Men i fjernkontrollene/opprinnelsen er det bare mastergren fordi det er den eneste vi presset. Stjernen (*) mesteren betyr at vi fortsatt er i den lokale mastergrenen. La oss gå inn i utviklingsgrenen, begå endringer og skyve disse endringene til det eksterne depotet.

$ Git Checkout Development
Byttet til filial 'utvikling'
$ ekko abc> readme.tekst
$ git add -a
$ git commit -m "Modified Development Branch"
[Utvikling DD9933E] Modified Development Branch
1 Fil endret, 1 innsetting (+)
$ git push opprinnelsesutvikling
Teller objekter: 3, gjort.
Skrive objekter: 100% (3/3), 257 byte | 0 byte/s, gjort.
Totalt 3 (Delta 0), gjenbrukt 0 (Delta 0)
Til/brukere/zakh_eecs/_work/learngit/git_remote_repository/prosjekt.git
* [Ny filial] Utvikling -> Utvikling

La oss sjekke alle grenene nå:

$ git gren -a
* Utvikling
eksperimentell
Hotfiks
herre
Remotes/Origin/Development
Remotes/Origin/Master

Vi ser at vi er i den lokale utviklingsgrenen, men det er også en ekstern utviklingsgren. Da vi presset endringene våre med utvikling av Git Push Origin, skapte det utviklingsgrenen i fjernkontroll/opprinnelse.

La oss nå komme ut av Project_Source og finne et friskt sted hvor vi kan ha en ny mappe. Her skal vi klone det eksterne depotet med følgende kommando:

$ git klone/brukere/zakh_eecs/_work/learngit/git_remote_repository/project.git
Kloning til 'prosjekt' ..
Ferdig.

Vi har klonet en ny kopi som heter Project fra Project.git. Gå inn i prosjektmappen og sjekk filialene:

$ CD -prosjekt
$ git gren
* mester

Når Git lager en innledende klon fra et eksternt depot, får den bare mastergrenen. Hvis vi bruker alternativet -A, ser vi:

$ git gren -a
* mester
Remotes/Origin/Head -> Origin/Master
Remotes/Origin/Development
Remotes/Origin/Master

Legg merke til at det ikke er noen lokal utviklingsgren. Vi presset også hurtig og eksperimentelle grener fra Project_Source til Project.Git, så vi ser dem ikke. Det eksterne depotet har master- og utviklingsgrener (Remotes/Origin/Head -> Origin/Master er ikke en gren, det er bare å fortelle deg hvor hodet peker på).

La oss få utviklingsgrenen til vårt arbeidsmiljø:

$ git hente -alt
Hente opprinnelse
$ Git Checkout Development
Filialutvikling satt opp for å spore ekstern grenutvikling fra opprinnelse.
Byttet til en ny gren 'utvikling'

Hvis du bruker en eldre versjon av Git, kan det hende du må bruke:

$ Git Checkout Development Origin/Development

Nå hvis vi bruker grenkommandoen, får vi:

$ git gren -a
* Utvikling
herre
Remotes/Origin/Head -> Origin/Master
Remotes/Origin/Development
Remotes/Origin/Master

Vi kan gjøre endringer i utviklingsgrenen, begå endringene og deretter skyve den ved hjelp av Git Push Origin Development -kommandoen.

For å konkludere

Når du jobber med GitHub og Bitbucket, kan du bruke HTTPS eller SSH -lenke for å koble deg til det eksterne depotet ditt. Så du vil sette opprinnelsen til disse koblingene. Men prinsippene for den eksterne grenen er de samme som beskrevet her.

Videre studier:

  • https: // git-cm.com/docs/git-branch
  • https: // git-cm.com/bok/en/v2/git-on-the-server-seting-up-the-server
  • https: // hjelp.github.com/artikler/adding-an-existing-project-to-github-use-the-command-line/
  • https: // hjelp.github.com/artikler/pushing-to-a-en-remote/