SVN gebruikt één centrale repository om te dienen als communicatiehub voor ontwikkelaars, en samenwerking vindt plaats door wijzigingensets door te geven tussen de werkkopieën van de ontwikkelaars en de centrale repository. Dit is anders dan het gedistribueerde samenwerkingsmodel van Git, dat elke ontwikkelaar zijn eigen kopie van de repository geeft, compleet met zijn eigen lokale geschiedenis en branch structuur. Gebruikers moeten meestal een reeks commits delen in plaats van een enkele changeset., In plaats van een changeset van een werkkopie naar de centrale repository te committen, laat Git je volledige branches tussen repositories delen.
het git remote
commando is een onderdeel van het bredere systeem dat verantwoordelijk is voor het synchroniseren van wijzigingen. Records die zijn geregistreerd via de opdracht git remote
worden gebruikt in combinatie met de opdrachten git fetch
, git push
, en git pull
. Deze commando ‘ s hebben allemaal hun eigen synchronisatie verantwoordelijkheden die kunnen worden onderzocht op de bijbehorende links.,
Git remote
het git remote
commando laat je verbindingen maken, bekijken en verwijderen naar andere repositories. Externe verbindingen zijn meer als bladwijzers in plaats van directe links naar andere repositories. In plaats van real-time toegang te bieden tot een andere repository, dienen ze als handige Namen die kunnen worden gebruikt om te verwijzen naar een niet-zo-handige URL.
bijvoorbeeld, het volgende diagram toont twee externe verbindingen van uw repo naar de centrale repo en de repo van een andere Ontwikkelaar., In plaats van ze te refereren aan hun volledige URL ‘s, kun je de origin en john snelkoppelingen doorgeven aan andere Git commando’ s.
Git remote usage overview
het commando git remote
is in wezen een interface voor het beheren van een lijst van Remote items die zijn opgeslagen in het repository ./.git/config
bestand. De volgende commando ‘ s worden gebruikt om de huidige status van de lijst op afstand weer te geven.
het bekijken van Git remote configuraties
git remote
Toon de externe verbindingen die u hebt met andere repositories.,
git remote -v
hetzelfde als het bovenstaande commando, maar inclusief de URL van elke verbinding.
het aanmaken en wijzigen van Git remote configuraties
het git remote
commando is ook een gemak of ‘helper’ methode voor het wijzigen van een repo ‘ s ./.git/config
bestand. Met de commando ‘ s hieronder kunt u verbindingen met andere repositories beheren. De volgende commando ‘ s zullen het repo /.git/config
bestand wijzigen., Het resultaat van de volgende commando ‘ s kan ook worden bereikt door het ./.git/config
bestand direct te bewerken met een teksteditor.
git remote add <name> <url>
Maak een nieuwe verbinding met een remote repository. Na het toevoegen van een remote, zul je in staat zijn om te gebruiken als een handige snelkoppeling voor in andere Git commando ‘ s.
git remote rm <name>
verwijder de verbinding met de remote repository genaamd .
git remote rename <old-name> <new-name>
hernoem een verbinding op afstand van naar .,
Git remote discussie
Git is ontworpen om elke ontwikkelaar een volledig geïsoleerde ontwikkelomgeving te geven. Dit betekent dat informatie niet automatisch heen en weer wordt doorgegeven tussen repositories. In plaats daarvan moeten ontwikkelaars handmatig upstream commits naar hun lokale repository Pullen of hun lokale commits handmatig terug pushen naar de centrale repository. Het git remote
commando is eigenlijk gewoon een makkelijkere manier om URL ’s door te geven aan deze” sharing “commando’ s.,
de origin Remote
wanneer u een repository kloont met git clone
, maakt het automatisch een externe verbinding met de naam origin die naar de gekloonde repository verwijst. Dit is handig voor ontwikkelaars die een lokale kopie van een centrale repository maken, omdat het een eenvoudige manier biedt om upstream wijzigingen te Pullen of lokale commits te publiceren. Dit gedrag is ook waarom de meeste op Git gebaseerde projecten hun centrale repository origin noemen.
Repository URL ‘ s
Git ondersteunt vele manieren om naar een remote repository te verwijzen., Twee van de makkelijkste manieren om toegang te krijgen tot een remote repo zijn via de HTTP en de SSH protocollen. HTTP is een eenvoudige manier om anonieme, alleen-lezen toegang tot een repository toe te staan. Bijvoorbeeld:
But, it’s generally not possible to push commits to an HTTP address (you wouldn’t want to allow anonymous pushes anyways). For read-write access, you should use SSH instead:
ssh://user@host/path/to/repo.git
je hebt een geldig SSH account nodig op de host machine, maar anders dan dat, ondersteunt Git geverifieerde toegang via SSH uit de doos. Moderne veilige 3rd party hosting oplossingen zoals Bitbucket.com zal deze URL ‘ s voor u.
Git remote commando ‘s
het git remote
commando is een van de vele Git commando’s die extra ‘subcommando’ s ‘ nodig hebben., Hieronder volgt een overzicht van de veelgebruikte git remote
subcommando ‘ s.
ADD <NAME> <URL>
voegt een record toe aan ./.git/config
Voor Remote named op de repository url .
accepteert een-f
optie, diegit fetch
onmiddellijk nadat de remote record is gemaakt.
accepteert een --tags
optie, die git fetch
onmiddellijk zal importeren en elke tag uit de remote repository zal importeren.,
RENAME <OLD> <NEW>
Updates ./.git/config
om de record te hernoemen . Alle remote-tracking branches en configuratie-instellingen voor de remote worden bijgewerkt.
REMOVE or RM <NAME>
wijzigt ./.git/config
en verwijdert de remote named . Alle remote-tracking branches en configuratie-instellingen voor de remote worden verwijderd.
GET-URL <NAME>
voert de URL ‘ s uit voor een record op afstand.
accepteert --push
, push-URL ’s worden opgevraagd in plaats van URL’ s ophalen.,
met --all
worden alle URL ‘ s voor de afstandsbediening weergegeven.
SHOW <NAME>
geeft informatie op hoog niveau over de remote .
PRUNE <NAME>
verwijdert alle lokale branches die niet aanwezig zijn op de remote repository.
accepteert een --dry-run
optie die een lijst geeft van welke branches zijn ingesteld om te worden gesnoeid, maar deze niet daadwerkelijk zal snoeien.
Git remote examples
naast origin is het vaak handig om een verbinding te hebben met de repositories van je teamgenoten., Bijvoorbeeld, als je collega, John, een publiek toegankelijke repository onderhield op dev.example.com/john.git
, zou je als volgt een verbinding kunnen toevoegen:
git remote add john http://dev.example.com/john.git
het hebben van dit soort toegang tot de repositories van individuele ontwikkelaars maakt het mogelijk om buiten de centrale repository samen te werken. Dit kan zeer nuttig zijn voor kleine teams die aan een groot project werken.
uw afstandsbedieningen
standaard zal het git remote
Commando eerder opgeslagen externe verbindingen naar andere repositories weergeven., Dit zal enkele regel uitvoer die de namen van “bladwijzer” naam van Remote repo ‘ s toont produceren.
$ git remote
origin
upstream
other_users_repo
aanroepen van git remote
met de-v
optie zal de lijst met bladwijzernamen afdrukken en bovendien de bijbehorende repository-URL. De optie -v
staat voor “verbose”. Hieronder is een voorbeeld uitvoer van uitgebreide git remote
uitvoer.
Remote Repositories toevoegen
het git remote add
commando maakt een nieuwe verbindingsrecord aan naar een remote repository., Na het toevoegen van een remote, zul je in staat zijn om te gebruiken als een handige snelkoppeling voor in andere Git commando ‘ s. Voor meer informatie over de geaccepteerde URL syntaxis, bekijk de “Repository URL ‘s” sectie hieronder. Dit commando zal een nieuwe record aanmaken in de repository ./.git/config
. Een voorbeeld van dit configuratiebestand update volgt:
inspecteren van een Remote
de show subopdracht kan worden toegevoegd aan git remote
om gedetailleerde uitvoer te geven over de configuratie van een remote., Deze uitvoer zal een lijst bevatten van branches die geassocieerd zijn met de remote en ook de eindpunten die verbonden zijn voor het 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: master
Remote branches:
master tracked
simd-deprecated tracked
tutorial tracked
Local ref configured for 'git push':
master pushes to master (fast-forwardable)
Fetching and pulling from Git remotes
zodra een remote record is geconfigureerd door het gebruik van het git remote
commando, kan de remote naam als argument worden doorgegeven aan andere Git commando ‘ s om te communiceren met de remote repo. Zowel git fetch
, als git pull
kunnen worden gebruikt om uit een remote repository te lezen., Beide commando ‘ s hebben verschillende bewerkingen die verder worden uitgelegd op hun respectievelijke links.
Pushing to Git remotes
het git push
commando wordt gebruikt om naar een remote repository te schrijven.
git push <remote-name> <branch-name>
dit voorbeeld uploadt de lokale status van de remote repository gespecificeerd door .
hernoemen en verwijderen van afstandsbedieningen
git remote rename <old-name> <new-name>
het commando git remote
hernoemen spreekt voor zich. Wanneer uitgevoerd, zal dit commando een externe verbinding hernoemen van naar ., Bovendien zal dit de inhoud van ./.git/config
wijzigen om het record voor de remote daar ook te hernoemen.
git remote rm <name>
het commando git remote rm
verwijdert de verbinding met de remote repository gespecificeerd door de parameter. Laten we om aan te tonen de externe toevoeging van ons laatste voorbeeld ‘ongedaan maken’. Als we git remote rm remote_test
uitvoeren, en dan de inhoud van ./.git/config
onderzoeken, kunnen we zien dat de record niet langer aanwezig is.