Git

Git Show externe takken

Git Show externe takken
Git's vermogen om gemakkelijk branches te maken is een geweldige functie. Als het echter om lokale en externe vestigingen gaat, kan het een beetje ingewikkeld worden. Laten we een situatie opzetten waarin we onze eigen Git-repository gaan maken die zich zal gedragen als een externe repo. Vervolgens gaan we branches maken en committen naar onze externe repository vanuit project_source. Daarna gaan we de externe repository klonen en met de branches spelen. De oefening zou je ook een idee moeten geven van hoe externe opslagplaatsen zoals GitHub en BitBucket werken. Je kunt het als volgt visualiseren:

Laten we beginnen met de Git-repository. We zullen een map maken met de naam project.git en initialiseer het om de externe repository te worden:

$ mkdir-project.git
$ cd-project.git/
$ git init --bare
Lege Git-repository geïnitialiseerd in /Users/zakh_eecs/_work/LearnGIT/git_remote_repository/
projecteren.git/

Ga nu naar een nieuwe locatie waar u een schone map kunt maken. Maak de map project_source en initialiseer deze voor Git:

$ mkdir project_source
 
$ cd project_source
 
$ git init
Geïnitialiseerde lege Git-repository in /Users/zakh_eecs/_work/LearnGIT/git_branching_source/
project_bron/.git/
 
$ raak LeesMij aan.tekst
 
$ git add -A
 
$ git commit -m "Initial Commit"
[master (root-commit) 176134f] Initial Commit Com
1 bestand gewijzigd, 0 invoegingen (+), 0 verwijderingen (-)
aanmaakmodus 100644 Leesmij.tekst

De project_setup is een Git-map met ReadMe.txt-bestand. Het is echter niet verbonden met onze externe repository. Laten we een project opzetten.git om de externe repository te zijn voor project_source. We kunnen dit bereiken door het volgende commando:

$ git remote add origin /Users/zakh_eecs/_work/LearnGIT/git_remote_repository/project.git
 
$ git push origin master
Objecten tellen: 3, klaar.
Objecten schrijven: 100% (3/3), 213 bytes | 0 bytes/s, klaar.
Totaal 3 (delta 0), hergebruikt 0 (delta 0)
Naar /Users/zakh_eecs/_work/LearnGIT/git_remote_repository/project.git
* [nieuwe branch]      master -> master

Met het git remote add origin commando hebben we de verbinding gemaakt tussen project.git en project_source. Met het git push origin master commando hebben we onze master branch naar de remote repository gepusht.

Laten we onze filialen eens bekijken (nog steeds in de map project_source):

$ git branch
* meester
 
$ git branch -r
herkomst/meester
 
$ git branch -a
* meester
afstandsbedieningen/oorsprong/master

Het eerste commando toont alleen de lokale branch. De optie -r toont de vertakking op afstand. En de -a optie toont zowel lokaal als op afstand.

Laten we een paar branches maken in onze werkdirectory:

$ git branch ontwikkeling
 
$ git branch hotfix
 
$ git branch experimenteel
 
$ git branch -a
ontwikkeling
experimenteel
hotfix
* meester
afstandsbedieningen/oorsprong/master

We hebben branches gemaakt met de namen ontwikkeling, hotfix en experimenteel. Ze verschijnen in onze lokale filiaallijst. Maar in de remotes/origin is er alleen een master branch omdat dat de enige is die we hebben gepusht. De star(*) master betekent dat we nog steeds in de lokale master branch zitten. Laten we naar de ontwikkelingstak gaan, wijzigingen vastleggen en die wijzigingen naar de externe repository pushen.

$ git checkout ontwikkeling
Overgestapt naar branche 'ontwikkeling'
 
$ echo abc > Leesmij.tekst
 
$ git add -A
 
$ git commit -m "Gewijzigde ontwikkelingstak"
[ontwikkeling dd9933e] Gewijzigde ontwikkelingstak
1 bestand gewijzigd, 1 invoeging (+)
 
$ git push oorsprong ontwikkeling
Objecten tellen: 3, klaar.
Objecten schrijven: 100% (3/3), 257 bytes | 0 bytes/s, klaar.
Totaal 3 (delta 0), hergebruikt 0 (delta 0)
Naar /Users/zakh_eecs/_work/LearnGIT/git_remote_repository/project.git
* [nieuwe vestiging]      ontwikkeling -> ontwikkeling

Laten we nu alle takken controleren:

$ git branch -a
* ontwikkeling
experimenteel
hotfix
meester
afstandsbedieningen/oorsprong/ontwikkeling
afstandsbedieningen/oorsprong/master

We zien dat we in de lokale ontwikkelingstak zitten, maar er is ook een externe ontwikkelingstak. Toen we onze wijzigingen pushten met git push origin development, creëerde het de development branch in remotes/origin.

Laten we nu de project_source verlaten en een nieuwe plek zoeken waar we een nieuwe map kunnen hebben. Hier gaan we de externe repository klonen met de volgende opdracht:

$ git clone /Users/zakh_eecs/_work/LearnGIT/git_remote_repository/project.git
Klonen in 'project'…
gedaan.

We hebben een nieuwe kopie gekloond met de naam project from project.git. Ga naar de projectmap en controleer de branches:

$ cd-project
 
$ git branch
* meester

Wanneer Git een eerste kloon maakt van een externe repository, krijgt het alleen de master branch. Als we de -a optie gebruiken, zien we:

$ git branch -a
* meester
afstandsbedieningen/oorsprong/HEAD -> oorsprong/master
afstandsbedieningen/oorsprong/ontwikkeling
afstandsbedieningen/oorsprong/master

Merk op dat er geen lokale ontwikkelingsafdeling is. We hebben ook nooit hotfix en experimentele branches van project_source naar project gepusht.git, dus we zien ze niet. De externe repository heeft master- en ontwikkelingstakken (remotes/origin/HEAD -> origin/master is geen branch, het vertelt je alleen waar de HEAD naar verwijst).

Laten we de ontwikkelingstak in onze werkomgeving krijgen:

$ git fetch --all
Herkomst ophalen
 
$ git checkout ontwikkeling
Vestigingsontwikkeling opgezet om de ontwikkeling van externe vestigingen vanaf de oorsprong te volgen.
Overgestapt naar een nieuwe branche 'ontwikkeling'

Als je een oudere versie van Git gebruikt, moet je mogelijk het volgende gebruiken:

$ git checkout ontwikkeling oorsprong/ontwikkeling

Als we nu het branch-commando gebruiken, krijgen we:

$ git branch -a
* ontwikkeling
meester
afstandsbedieningen/oorsprong/HEAD -> oorsprong/master
afstandsbedieningen/oorsprong/ontwikkeling
afstandsbedieningen/oorsprong/master

We kunnen wijzigingen aanbrengen in de ontwikkelingstak, de wijzigingen vastleggen en deze vervolgens pushen met behulp van het git push origin development-commando.

Tot slot

Wanneer u met GitHub en BitBucket werkt, kunt u een HTTPS- of SSH-link gebruiken om verbinding te maken met uw externe repository. Dus je stelt je oorsprong in op die links. Maar de principes van de remote branch zijn hetzelfde als hier beschreven described.

Verdere studie:

Beste gamepad-toewijzingsapps voor Linux
Als je graag games op Linux speelt met een gamepad in plaats van een typisch toetsenbord- en muisinvoersysteem, zijn er enkele handige apps voor jou. ...
Handige hulpmiddelen voor Linux-gamers
Als je graag games op Linux speelt, is de kans groot dat je apps en hulpprogramma's zoals Wine, Lutris en OBS Studio hebt gebruikt om de game-ervaring...
HD Remastered Games voor Linux die nog nooit eerder een Linux-release hebben gehad
Veel game-ontwikkelaars en uitgevers komen met HD-remaster van oude games om de levensduur van franchise te verlengen, fans die compatibiliteit met mo...