Close

git remote

SVN gebruikt één gecentraliseerde repository die dient als communicatiecentrum voor ontwikkelaars. Samenwerking vindt plaats door wijzigingensets door te geven tussen de werkkopieën van de ontwikkelaars en de centrale repository. Het samenwerkingsmodel van Git geeft ontwikkelaars hun eigen kopie van de repository, compleet met hun eigen lokale geschiedenis en branchstructuur. Gebruikers moeten doorgaans een reeks commits delen in plaats van een enkele wijzigingenset. In plaats van een wijzigingenset van een werkkopie naar de centrale repository te committen, laat Git je hele branches delen tussen repository's.

De opdracht git remote is een onderdeel van het bredere systeem dat verantwoordelijk is voor het synchroniseren van wijzigingen. Records die met de opdracht git remote zijn geregistreerd, worden gebruikt in combinatie met de opdrachten git fetch, git push en git pull. Deze opdrachten hebben allemaal hun eigen synchronisatieverantwoordelijkheden, die je kunt vinden via de bijbehorende links.


git remote


Met de opdracht git remote kun je koppelingen naar andere repository's aanmaken, bekijken en verwijderen. Externe koppelingen lijken meer op bladwijzers dan op directe links naar andere repository's. In plaats van realtime toegang tot een andere repository te bieden, dienen ze als handige namen die kunnen worden gebruikt om te verwijzen naar een niet zo handige URL.

Het volgende diagram toont bijvoorbeeld twee externe koppelingen van je repo naar de centrale repository en de repository van een andere ontwikkelaar. In plaats van ernaar te verwijzen met hun volledige URL's, kun je de sneltoetsen 'origin' en 'john' doorgeven aan andere Git-opdrachten.

git remote gebruiken om te koppelen met andere repository's
Consolevenster
gerelateerd materiaal

Uitgebreid Git log

Logo Bitbucket
Oplossing bekijken

Git leren met Bitbucket Cloud

Overzicht van het gebruik van 'git remote'


De opdracht git remote is in wezen een interface voor het beheren van een lijst van externe items die zijn opgeslagen in het ./.git/config-bestand van de repository. De volgende opdrachten worden gebruikt om de huidige status van de externe lijst te bekijken.

'git remote'-configuraties weergeven


git remote

Maak een lijst van de externe koppelingen die je hebt met andere repository's.

git remote -v

Hetzelfde als de bovenstaande opdracht, maar vermeld de URL van elke koppeling.

'git remote'-configuraties maken en wijzigen


De opdracht git remote is ook handig en behulpzaam om het ./.git/config-bestand van een repo aan te passen. Met de onderstaande opdrachten kun je koppelingen met andere repository's beheren. De volgende opdrachten zullen het /.git/config-bestand van de repo aanpassen. Het resultaat van de volgende opdrachten kan ook worden bereikt door het ./.git/config-bestand rechtstreeks te bewerken met een teksteditor.

git remote add <name> <url>

Maak een nieuwe koppeling met een externe repository. Nadat je een externe locatie hebt toegevoegd, kun je gebruiken als een handige sneltoets voor <url> in andere Git-opdrachten.

git remote rm <name>

Verwijder de koppeling met de externe repository, genaamd .

git remote rename <old-name> <new-name>

Hernoem een externe koppeling van naar .

Discussie over git remote


Git is ontworpen om ontwikkelaars een volledig geïsoleerde ontwikkelomgeving te bieden. Informatie kan dus niet automatisch heen en weer worden doorgegeven tussen repository's. In plaats daarvan moeten ontwikkelaars stroomopwaartse commits handmatig naar hun lokale repository halen of lokale commits handmatig terugsturen naar de centrale repository. De opdracht git remote biedt eigenlijk gewoon een eenvoudigere manier om URL's door te geven aan deze commando's waarmee je kunt 'delen'.

De origin remote


Wanneer je een repository kloont met git clone, wordt er automatisch een externe koppeling gemaakt, genaamd 'origin', die terugverwijst naar de gekloonde repository. Dit is handig voor ontwikkelaars die een lokale kopie van een centrale repository maken, omdat het een eenvoudige manier is om stroomopwaarts wijzigingen op te halen lokale commits te publiceren. Dit gedrag is ook de reden waarom de meeste Git-projecten de oorsprong van hun centrale repository aanroepen.

URL's van repository's


Git ondersteunt vele manieren om naar een externe repository te verwijzen. Twee van de eenvoudigste manieren om toegang tot een externe repository te krijgen, zijn via de HTTP- en SSH-protocollen. HTTP is een eenvoudige manier om anonieme, alleen-lezentoegang tot een repository mogelijk te maken. Bijvoorbeeld:

http://host/path/to/repo.git

Maar over het algemeen is het niet mogelijk om commits naar een HTTP-adres te pushen (anonieme pushes zou je sowieso niet moeten toestaan). Voor lees- en schrijftoegang moet je in plaats daarvan SSH gebruiken:

ssh://user@host/path/to/repo.git

Je hebt een geldig SSH-account nodig op de hostmachine, maar verder ondersteunt Git standaard geverifieerde toegang via SSH. Moderne, veilige hostingoplossingen van derden, zoals Bitbucket.com, zullen deze URL's voor je beschikbaar stellen.

Git remote-opdrachten


De opdracht git remote is een van de vele Git-opdrachten waaraan extra 'subopdrachten' moeten worden toegevoegd. Hieronder volgt een overzicht van de veelgebruikte git remote-subopdrachten.

ADD <NAME> <URL>

Voegt een record toe aan ./.git/config voor de externe locatie met de naam en URL <url>.

Accepteert de optie -f, waarbij de git fetch direct na het aanmaken van het externe record wordt opgehaald.

Accepteert de optie --tags, waarbij de git fetch onmiddellijk wordt opgehaald en elke tag uit de externe repository wordt geïmporteerd.

RENAME <OLD> <NEW>

Werkt ./.git/config bij om het record <OLD> te hernoemen naar <NEW>. Alle branches voor tracering op afstand en de configuratie-instellingen voor de afstandsbediening worden bijgewerkt.

REMOVE or RM <NAME>

Wijzigt ./.git/config en verwijdert de externe locatie met de naam <NAME>. Alle branches voor tracering op afstand en de configuratie-instellingen voor de afstandsbediening worden verwijderd.

GET-URL <NAME>

Geeft de URL's voor een remote record weer.

Accepteert --push: push-URL's worden opgevraagd in plaats van dat URL's worden opgehaald.

Met --all worden alle URL's voor de externe locatie vermeld.

SHOW <NAME>

Geeft uitgebreide informatie weer over de externe locatie <NAME>.

PRUNE <NAME>

Verwijdert alle lokale branches voor <NAME> die niet aanwezig zijn in de externe repository.

Accepteert een --dry-run-optie die aangeeft welke branches moeten worden opgeschoond zonder deze daadwerkelijk op te schonen.

Voorbeelden van git remote


Naast 'origin' is het vaak handig om een koppeling te hebben met de repository's van je teamgenoten. Als je collega John bijvoorbeeld een openbaar toegankelijke repository bijhield op dev.example.com/john.git, zou je als volgt een koppeling kunnen toevoegen:

git remote add john http://dev.example.com/john.git

Met dit soort toegang tot de repository's van afzonderlijke ontwikkelaars is het mogelijk om buiten de centrale repository samen te werken. Dit kan erg handig zijn voor kleine teams die aan een groot project werken.

Je externe locaties laten zien


De opdracht git remote geeft standaard een lijst weer van eerder opgeslagen externe koppelingen met andere repository's. Dit levert een uitvoer van één regel op met de namen van de 'bladwijzernaam' van externe repo's.

$ git remote
origin
upstream
other_users_repo

Als je git remote aanroept met de optie -v, wordt de lijst met namen van de repository's weergegeven met bladwijzers en daarnaast de corresponderende URL van de repository. De optie -v staat voor 'verbose' of uitgebreid. Hieronder zie je voorbeelduitvoer van een uitgebreide git remote-opdracht.

git remote -v
origin  git@bitbucket.com:origin_user/reponame.git (fetch)
origin  git@bitbucket.com:origin_user/reponame.git (push)
upstream    https://bitbucket.com/upstream_user/reponame.git (fetch)
upstream    https://bitbucket.com/upstream_user/reponame.git (push)
other_users_repo    https://bitbucket.com/other_users_repo/reponame (fetch)
other_users_repo    https://bitbucket.com/other_users_repo/reponame (push)

Externe repository's toevoegen


De opdracht git remote add zal een nieuw koppelingsrecord aanmaken naar een externe repository. Nadat je een externe locatie hebt toegevoegd, kun je gebruiken als een handige sneltoets voor in andere Git-opdrachten. Bekijk de sectie Repository-URL's hieronder voor meer informatie over de geaccepteerde URL-syntaxis. Met deze opdracht wordt een nieuw record aangemaakt in het ./.git/config-bestand van de repository. Hieronder volgt een voorbeeld van deze update van het configuratiebestand:

$ git remote add fake_test https://bitbucket.com/upstream_user/reponame.git; [remote "remote_test"] 
   url = https://bitbucket.com/upstream_user/reponame.git 
   fetch = +refs/heads/*:refs/remotes/remote_test/*

Een externe locatie inspecteren


De subopdracht 'show' kan aan git remote worden toegevoegd om gedetailleerde output te geven over de configuratie van een externe locatie. Deze output bevat een lijst van branches die aan de externe locatie zijn gekoppeld, en ook de bijbehorende eindpunten voor ophalen en pushen.

git remote show upstream
* remote upstream
   Fetch URL: https://bitbucket.com/upstream_user/reponame.git
   Push URL: https://bitbucket.com/upstream_user/reponame.git
   HEAD branch: main
   Remote branches:
      main tracked
      simd-deprecated tracked
      tutorial tracked
   Local ref configured for 'git push':
      main pushes to main (fast-forwardable)

Fetch en pull gebruiken voor externe Git-locaties


Zodra een extern record met behulp van de opdracht git remote is geconfigureerd, kan de externe naam als argument worden doorgegeven aan andere Git-opdrachten om te communiceren met de externe repo. Zowel git fetch als git pull kunnen worden gebruikt om te lezen vanuit een externe repository. Beide opdrachten hebben verschillende bewerkingen die nader worden uitgelegd op de respectievelijke pagina's.

Pushen naar externe Git-locaties


De git push-opdracht wordt gebruikt om inhoud te uploaden naar een externe repository.

git push <remote-name> <branch-name>

In dit voorbeeld wordt de lokale staat van geüpload naar de externe repository, die is gespecificeerd met <remote-name>.

Externe locaties hernoemen en verwijderen


git remote rename <old-name> <new-name>

De opdracht git remote rename spreekt voor zich. Wanneer deze opdracht wordt uitgevoerd, wordt de naam van een externe koppeling gewijzigd van naar <new-name>. Bovendien wordt hiermee de inhoud van ./.git/config aangepast om de record voor de externe locatie daar ook een andere naam te geven.

git remote rm <name>

De opdracht git remote rm verwijdert de koppeling met de externe repository, die is gespecificeerd met de parameter . Laten we, om dit te illustreren, de toevoeging van de externe locatie uit ons laatste voorbeeld 'ongedaan maken'. Als we git remote rm remote_test uitvoeren en vervolgens de inhoud van ./.git/config bekijken, kunnen we zien dat het [remote "remote_test"]-record er niet meer is.


Deel dit artikel
Volgend onderwerp

Aanbevolen artikelen

Bookmark deze resources voor meer informatie over soorten DevOps-teams of voor voortdurende updates over DevOps bij Atlassian.

Mensen die samenwerken met een muur vol tools

Bitbucket-blog

Toelichting DevOps

DevOps-leertraject

Demo Den Feature-demo's met Atlassian-experts

Hoe Bitbucket Cloud werkt met Atlassian Open DevOps

Meld je aan voor onze DevOps-nieuwsbrief

Thank you for signing up