Git

Git Show Remote Branches

Git Show Remote Branches
Gits evne til å lage grener enkelt er en flott funksjon. Imidlertid kan det bli litt komplisert når du arbeider med lokale og eksterne grener. La oss sette opp en situasjon der vi skal lage vårt eget Git-depot som vil oppføre seg som en ekstern repo. Deretter skal vi lage og forplikte grener til vårt eksterne arkiv fra project_source. Etter det skal vi klone det eksterne lageret og leke med grenene. Øvelsen skal også gi deg en ide om hvordan eksterne arkiver som GitHub og BitBucket fungerer. Du kan visualisere det som følger:

La oss starte med Git-depotet. Vi vil lage en mappe som heter prosjekt.git og initialiser den for å bli det eksterne depotet:

$ mkdir-prosjekt.git
$ cd-prosjekt.git /
$ git init --bare
Initialisert tomt Git-arkiv i / Brukere / zakh_eecs / _work / LearnGIT / git_remote_repository /
prosjekt.git /

Gå nå til et nytt sted hvor du kan opprette en ren mappe. Opprett mappen project_source og initialiser den for Git:

$ mkdir prosjektkilde
 
$ cd project_source
 
$ git init
Initialisert tomt Git-arkiv i / Brukere / zakh_eecs / _work / LearnGIT / git_branching_source /
prosjekt_kilde /.git /
 
$ touch ReadMe.tekst
 
$ git add -A
 
$ git commit -m "Initial Commit"
[master (root-commit) 176134f] Opprinnelig forpliktelse
1 fil endret, 0 innsettinger (+), 0 slettinger (-)
opprett modus 100644 ReadMe.tekst

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

$ git ekstern legge til opprinnelse / brukere / zakh_eecs / _work / LearnGIT / git_remote_repository / prosjekt.git
 
$ git push origin master
Telle objekter: 3, ferdig.
Skriveobjekter: 100% (3/3), 213 byte | 0 byte / s, ferdig.
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 mappen project_source):

$ git gren
* mester
 
$ git gren -r
opprinnelse / mester
 
$ git gren -a
* mester
fjernkontroller / opprinnelse / master

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

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

$ git grenutvikling
 
$ git-hurtigreparasjonen
 
$ git gren eksperimentell
 
$ git gren -a
utvikling
eksperimentell
hurtigreparasjonen
* mester
fjernkontroller / opprinnelse / master

Vi har opprettet grener kalt utvikling, hurtigreparasjon og eksperimentell. De dukker opp i vår lokale grenliste. Men i fjernkontrollene / opprinnelsen er det bare mestergren fordi det er den eneste vi presset. Stjernemesteren (*) betyr at vi fortsatt er i den lokale mestergrenen. La oss gå inn i utviklingsgrenen, begå endringer og skyve disse endringene til det eksterne depotet.

$ git checkout utvikling
Byttet til gren 'utvikling'
 
$ echo abc> ReadMe.tekst
 
$ git add -A
 
$ git commit -m "Modified development branch"
[utvikling dd9933e] Endret utviklingsgren
1 fil endret, 1 innsetting (+)
 
$ git push opprinnelsesutvikling
Telle objekter: 3, ferdig.
Skriveobjekter: 100% (3/3), 257 byte | 0 byte / s, ferdig.
Totalt 3 (delta 0), gjenbrukt 0 (delta 0)
Til / brukere / zakh_eecs / _work / LearnGIT / git_remote_repository / prosjekt.git
* [ny gren] utvikling -> utvikling

La oss sjekke alle grenene nå:

$ git gren -a
* utvikling
eksperimentell
hurtigreparasjonen
herre
fjernkontroller / opprinnelse / utvikling
fjernkontroller / opprinnelse / master

Vi ser at vi er i den lokale utviklingsgrenen, men det er også en ekstern utviklingsgren. Da vi presset endringene våre med git push opprinnelsesutvikling, skapte det utviklingsgrenen i fjernkontroller / opprinnelse.

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

$ git clone / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
Kloning i 'prosjekt' ..
ferdig.

Vi har klonet en ny kopi kalt prosjekt fra prosjekt.git. Gå inn i prosjektmappen og sjekk grenene:

$ cd-prosjekt
 
$ git gren
* mester

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

$ git gren -a
* mester
fjernkontroller / opprinnelse / HEAD -> opprinnelse / master
fjernkontroller / opprinnelse / utvikling
fjernkontroller / opprinnelse / master

Legg merke til at det ikke er noen lokal utviklingsgren. Vi presset aldri hurtigreparasjoner og eksperimentelle grener fra project_source til project.git, så vi ser dem ikke. Fjernregisteret har master- og utviklingsgrener (fjernkontroller / opprinnelse / HEAD -> origin / master er ikke en gren, det er bare å fortelle deg hvor HEAD peker på).

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

$ git henting - alt
Henter opprinnelse
 
$ git kassa utvikling
Grenutvikling satt opp for å spore ekstern grenutvikling fra opphav.
Byttet til en ny gren 'utvikling'

Hvis du bruker en eldre versjon av Git, må du kanskje bruke:

$ git kassa utvikling opprinnelse / utvikling

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

$ git gren -a
* utvikling
herre
fjernkontroller / opprinnelse / HEAD -> opprinnelse / master
fjernkontroller / opprinnelse / utvikling
fjernkontroller / opprinnelse / master

Vi kan gjøre endringer i utviklingsgrenen, begå endringene og deretter skyve den ved hjelp av kommandoen git push origin development.

For å konkludere

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

Videre studier:

Mus AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
AppyMouse Pekeplate og musepeker på skjermen for Windows-nettbrett
Nettbrettbrukere savner ofte musepekeren, spesielt når de bruker vanlige bærbare datamaskiner. Berøringsskjermen Smarttelefoner og nettbrett har mange...
Mus Midterste museknapp fungerer ikke i Windows 10
Midterste museknapp fungerer ikke i Windows 10
De midtre museknapp hjelper deg med å bla gjennom lange websider og skjermer med mye data. Hvis det stopper, vil du ende opp med å bruke tastaturet ti...
Mus Hvordan endre venstre og høyre museknapp på Windows 10 PC
Hvordan endre venstre og høyre museknapp på Windows 10 PC
Det er ganske vanlig at alle datamusenheter er ergonomisk designet for høyrehendte brukere. Men det er tilgjengelige musenheter som er spesielt design...