Remotes, zonder server · oefening
Een lokale origin maken
De repository garden heeft een andere repository nodig om geschiedenis mee uit te wisselen. Je maakt die in een map ernaast en geeft het pad binnen garden de gebruikelijke naam origin.
Maak een bare repository
git init --bare combineert de opdracht voor het maken van een repository die je eerder zag met de optie --bare. Die optie vertelt Git om alleen de repositorygegevens te maken: commits, refs en configuratie, zonder uitgecheckte werkboom. Het laatste argument is de te maken map. Vanuit /workspace/garden is ../origin.git een relatief pad naar een map naast garden.
In een pad betekent .. de bovenliggende map. Vanuit /workspace/garden kom je daarmee bij /workspace; /origin.git eraan toevoegen benoemt een map daarbinnen. Dit is een relatief pad, omdat je huidige map het vertrekpunt is. Een pad dat met / begint, zoals /workspace/origin.git, is een absoluut pad en begint bij de hoofdmap van het bestandssysteem. Gebruik hier het relatieve pad zodat de drie mappen samen kunnen verhuizen zonder hun opgeslagen relatie te veranderen.
Voer uit:
git init --bare ../origin.git
Het achtervoegsel .git is gebruikelijk voor mapnamen van bare repositories. Het helpt een lezer herkennen dat de map een opslagplaats voor een repository is en geen projectwerkboom; Git vereist het achtervoegsel niet.
Sla de andere repository op als origin
origin.git maken verbindt garden er niet automatisch mee. git remote add legt een remote vast in de huidige repository. Het eerste argument is de naam die je wilt gebruiken en het tweede is de locatie van de andere repository.
origin is de gebruikelijke naam voor de repository waarmee een project voor het eerst is gedeeld of waarvan het is gekloond. Het is een gewone naam, geen speciale server. Sla het relatieve pad naar de map ernaast op onder die naam:
git remote add origin ../origin.git
Bekijk wat garden heeft opgeslagen
git remote -v bekijkt opgeslagen remote-instellingen. De optie -v betekent verbose, uitgebreid: toon de naam en locatie voor zowel ophalen als pushen in plaats van alleen de naam.
git remote -v
Je hoort origin twee keer te zien, eenmaal met (fetch) en eenmaal met (push), en beide regels horen ../origin.git te gebruiken. Die labels beschrijven twee uitwisselrichtingen; ze betekenen niet dat er al iets is verplaatst. De bare repository is nog leeg en garden heeft nog steeds zijn oorspronkelijke twee commits.
Waarom maak je origin.git met git init --bare?
Je hebt nu twee repositories naast elkaar, en een naam in de ene die naar de andere wijst. Er is niets tussen ze uitgewisseld. origin.git is nog helemaal leeg; daar brengt de volgende les verandering in.