Git

Git Show Remote Branches

Git Show Remote Branches
Gits förmåga att enkelt skapa filialer är en fantastisk funktion. Men när det gäller lokala och avlägsna filialer kan det bli lite komplicerat. Låt oss ställa in en situation där vi ska skapa ett eget Git-arkiv som kommer att fungera som en fjärranslutning. Sedan ska vi skapa och begå filialer till vårt fjärrförvar från project_source. Efter det ska vi klona fjärrförvaret och spela med grenarna. Övningen ska också ge dig en uppfattning om hur fjärrförvar som GitHub och BitBucket fungerar. Du kan visualisera det enligt följande:

Låt oss börja med Git-arkivet. Vi skapar en mapp som heter projekt.git och initialisera det för att bli fjärrförvaret:

$ mkdir-projekt.git
$ cd-projekt.git /
$ git init --bare
Initierat tomt Git-arkiv i / Användare / zakh_eecs / _work / LearnGIT / git_remote_repository /
projekt.git /

Gå nu till en ny plats där du kan skapa en ren mapp. Skapa mappen project_source och initialisera den för Git:

$ mkdir-projekt_källa
 
$ cd projektkälla
 
$ git init
Initierat tomt Git-arkiv i / Användare / zakh_eecs / _work / LearnGIT / git_branching_source /
projektkälla /.git /
 
$ touch ReadMe.Text
 
$ git add -A
 
$ git commit -m "Initial Commit"
[master (root-commit) 176134f] Initial Commit
1 fil har ändrats, 0 infogningar (+), 0 raderingar (-)
skapa läge 100644 ReadMe.Text

Project_setup är en Git-katalog med ReadMe.txt-fil. Det är dock inte anslutet till vårt fjärrförvar. Låt oss sätta upp projektet.git som fjärrförvar för project_source. Vi kan uppnå detta genom följande kommando:

$ git remote lägg till ursprung / Användare / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
 
$ git push origin master
Räkna objekt: 3, klar.
Skrivobjekt: 100% (3/3), 213 byte | 0 byte / s, klar.
Totalt 3 (delta 0), återanvändt 0 (delta 0)
Till / Användare / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
* [ny gren] master -> master

Med kommandot git remote add origin har vi skapat anslutningen mellan projektet.git och project_source. Med git push origin master-kommandot har vi flyttat vår huvudfilial till fjärrförvaret.

Låt oss kolla våra filialer (fortfarande i mappen projekt_källa):

$ git gren
* mästare
 
$ git gren -r
ursprung / mästare
 
$ git gren -a
* mästare
fjärrkontroller / ursprung / master

Det första kommandot visar endast den lokala grenen. Alternativet -r visar fjärrgrenen. Och alternativet -a visar både lokal och fjärrkontroll.

Låt oss skapa några grenar i vår arbetskatalog:

$ git grenutveckling
 
$ git-snabbkorrigering
 
$ git gren experimentell
 
$ git gren -a
utveckling
experimentell
snabbkorrigering
* mästare
fjärrkontroller / ursprung / master

Vi har skapat filialer som kallas utveckling, snabbkorrigering och experiment. De dyker upp i vår lokala filiallista. Men i fjärrkontrollerna / ursprunget finns det bara mästergren eftersom det är den enda vi pressade. Stjärnans (*) mästare betyder att vi fortfarande är i den lokala mästergrenen. Låt oss gå in i utvecklingsgrenen, begå ändringar och flytta ändringarna till fjärrförvaret.

$ git checkout utveckling
Byt till grenens "utveckling"
 
$ echo abc> ReadMe.Text
 
$ git add -A
 
$ git commit -m "Modified development branch"
[utveckling dd9933e] Modifierad utvecklingsgren
1 fil ändrad, 1 infogning (+)
 
$ git push-ursprungsutveckling
Räkna objekt: 3, klar.
Skrivobjekt: 100% (3/3), 257 byte | 0 byte / s, klar.
Totalt 3 (delta 0), återanvändt 0 (delta 0)
Till / Användare / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
* [ny gren] utveckling -> utveckling

Låt oss kolla alla grenar nu:

$ git gren -a
* utveckling
experimentell
snabbkorrigering
bemästra
fjärrkontroller / ursprung / utveckling
fjärrkontroller / ursprung / master

Vi ser att vi befinner oss i den lokala utvecklingsgrenen, men det finns också en fjärran utvecklingsgren. När vi drev våra förändringar med git push-ursprungsutveckling skapade den utvecklingsgrenen i fjärrkontroller / ursprung.

Låt oss nu gå ut ur projektkällan och hitta en ny plats där vi kan ha en ny mapp. Här ska vi klona fjärrförvaret med följande kommando:

$ git clone / Users / zakh_eecs / _work / LearnGIT / git_remote_repository / project.git
Kloning i "projekt" ..
Gjort.

Vi har klonat en ny kopia som heter projekt från projekt.git. Gå in i projektmappen och kontrollera filialerna:

$ cd-projekt
 
$ git gren
* mästare

När Git skapar en första klon från ett fjärranslutet får det bara huvudgrenen. Om vi ​​använder alternativet -a ser vi:

$ git gren -a
* mästare
fjärrkontroller / ursprung / HEAD -> ursprung / master
fjärrkontroller / ursprung / utveckling
fjärrkontroller / ursprung / master

Observera att det inte finns någon lokal utvecklingsgren. Dessutom har vi aldrig flyttat snabbkorrigeringar och experimentella grenar från project_source till project.git, så vi ser dem inte. Fjärrförvaret har master- och utvecklingsgrenar (fjärrkontroller / ursprung / HEAD -> origin / master är inte en gren, det säger bara var HEAD pekar på).

Låt oss få utvecklingsgrenen till vår arbetsmiljö:

$ git hämta - allt
Hämtar ursprung
 
$ git checkout utveckling
Grenutveckling inrättad för att spåra fjärrkontrollutveckling från ursprung.
Byt till en ny gren 'utveckling'

Om du använder en äldre version av Git kan du behöva använda:

$ git kassa utveckling ursprung / utveckling

Nu om vi använder filialkommandot får vi:

$ git gren -a
* utveckling
bemästra
fjärrkontroller / ursprung / HEAD -> ursprung / master
fjärrkontroller / ursprung / utveckling
fjärrkontroller / ursprung / master

Vi kan göra ändringar i utvecklingsgrenen, begå ändringarna och sedan trycka på den med kommandot git push origin development.

Sammanfattningsvis

När du arbetar med GitHub och BitBucket kan du använda HTTPS eller SSH-länk för att ansluta till ditt fjärrförvar. Så du kommer att ställa in ditt ursprung till dessa länkar. Men principerna för den avlägsna grenen är desamma som beskrivs här.

Ytterligare studier:

Mus Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
Så här ändrar du inställningar för mus och pekplatta med Xinput i Linux
De flesta Linux-distributioner levereras med "libinput" -bibliotek som standard för att hantera inmatningshändelser i ett system. Den kan bearbeta inm...
Mus Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Omforma dina musknappar på olika sätt för olika program med X-Mouse Button Control
Kanske behöver du ett verktyg som kan göra att musens kontroll ändras med alla applikationer som du använder. Om så är fallet kan du prova en ansökan ...
Mus Microsoft Sculpt Touch Wireless Mouse Review
Microsoft Sculpt Touch Wireless Mouse Review
Jag har nyligen läst om Microsoft Sculpt Touch trådlös mus och bestämde mig för att köpa den. Efter att ha använt den ett tag bestämde jag mig för att...