CINXE.COM

Git - Branches op afstand (Remote branches)

<!DOCTYPE html> <html lang="nl"> <head> <meta charset='utf-8'> <meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Git - Branches op afstand (Remote branches)</title> <link href="/favicon.ico" rel='shortcut icon' type='image/x-icon'> <link rel="stylesheet" href="/application.min.css"> <script src="/js/modernizr.js"></script> <script src="/js/modernize.js"></script> </head> <body id="documentation"> <div class="inner"> <header> <a href="/"><img src="/images/logo@2x.png" width="110" height="46" alt="Git" /></a> <span id="tagline"></span> <script type="text/javascript"> const taglines = [ "fast-version-control", "everything-is-local", "distributed-even-if-your-workflow-isnt", "local-branching-on-the-cheap", "distributed-is-the-new-centralized" ]; var tagline = taglines[Math.floor(Math.random() * taglines.length)]; document.getElementById('tagline').innerHTML = '--' + tagline; </script> <form id="search" action="/search/results"> <input id="search-text" name="search" placeholder="Type / to search entire site…" autocomplete="off" type="text" /> </form> <div id="search-results"></div> </header> </div> <div class="inner"> <div id="content-wrapper"> <div tabindex="1" class="sidebar-btn"></div> <aside class="sidebar" id="sidebar"> <nav> <ul> <li> <a href="/about">About</a> <ul> </ul> </li> <li> <a href="/doc" class="active">Documentation</a> <ul class="expanded"> <li> <a href="/docs">Reference</a> </li> <li> <a href="/book" class="active">Book</a> </li> <li> <a href="/videos">Videos</a> </li> <li> <a href="/doc/ext">External Links</a> </li> </ul> </li> <li> <a href="/downloads">Downloads</a> <ul > <li> <a href="/downloads/guis">GUI Clients</a> </li> <li> <a href="/downloads/logos">Logos</a> </li> </ul> </li> <li> <a href="/community">Community</a> </li> </ul> <hr class="sidebar"> <p> This book is available in <a href="/book/en/v2/Git-Branching-Remote-Branches">English</a>. </p> <p> Full translation available in <table> <tr><td><a href="/book/az/v2/Git%e2%80%99d%c9%99-Branch-Uzaq-Branch%e2%80%99lar">azərbaycan dili</a>,</td></tr> <tr><td><a href="/book/bg/v2/%d0%9a%d0%bb%d0%be%d0%bd%d0%be%d0%b2%d0%b5-%d0%b2-Git-%d0%9e%d1%82%d0%b4%d0%b0%d0%bb%d0%b5%d1%87%d0%b5%d0%bd%d0%b8-%d0%ba%d0%bb%d0%be%d0%bd%d0%be%d0%b2%d0%b5">български език</a>,</td></tr> <tr><td><a href="/book/de/v2/Git-Branching-Remote-Branches">Deutsch</a>,</td></tr> <tr><td><a href="/book/es/v2/Ramificaciones-en-Git-Ramas-Remotas">Español</a>,</td></tr> <tr><td><a href="/book/fr/v2/Les-branches-avec-Git-Branches-de-suivi-%c3%a0-distance">Français</a>,</td></tr> <tr><td><a href="/book/gr">Ελληνικά</a>,</td></tr> <tr><td><a href="/book/ja/v2/Git-%e3%81%ae%e3%83%96%e3%83%a9%e3%83%b3%e3%83%81%e6%a9%9f%e8%83%bd-%e3%83%aa%e3%83%a2%e3%83%bc%e3%83%88%e3%83%96%e3%83%a9%e3%83%b3%e3%83%81">日本語</a>,</td></tr> <tr><td><a href="/book/ko/v2/Git-%eb%b8%8c%eb%9e%9c%ec%b9%98-%eb%a6%ac%eb%aa%a8%ed%8a%b8-%eb%b8%8c%eb%9e%9c%ec%b9%98">한국어</a>,</td></tr> <tr><td><a href="/book/nl/v2/Branchen-in-Git-Branches-op-afstand-Remote-branches">Nederlands</a>,</td></tr> <tr><td><a href="/book/ru/v2/%d0%92%d0%b5%d1%82%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-Git-%d0%a3%d0%b4%d0%b0%d0%bb%d1%91%d0%bd%d0%bd%d1%8b%d0%b5-%d0%b2%d0%b5%d1%82%d0%ba%d0%b8">Русский</a>,</td></tr> <tr><td><a href="/book/sl/v2/Veje-Git-Oddaljene-veje">Slovenščina</a>,</td></tr> <tr><td><a href="/book/tl/v2/Pag-branch-ng-Git-Remote-na-mga-Branch">Tagalog</a>,</td></tr> <tr><td><a href="/book/uk/v2/%d0%93%d0%b0%d0%bb%d1%83%d0%b6%d0%b5%d0%bd%d0%bd%d1%8f-%d0%b2-git-%d0%92%d1%96%d0%b4%d0%b4%d0%b0%d0%bb%d0%b5%d0%bd%d1%96-%d0%b3%d1%96%d0%bb%d0%ba%d0%b8">Українська</a></td></tr> <tr><td><a href="/book/zh/v2/Git-%e5%88%86%e6%94%af-%e8%bf%9c%e7%a8%8b%e5%88%86%e6%94%af">简体中文</a>,</td></tr> </table> </p> <p> Partial translations available in <table> <tr><td><a href="/book/cs/v2/V%c4%9btve-v-syst%c3%a9mu-Git-Vzd%c3%a1len%c3%a9-v%c4%9btve">Čeština</a>,</td></tr> <tr><td><a href="/book/mk/v2/%d0%93%d1%80%d0%b0%d0%bd%d0%b5%d1%9a%d0%b5-%d0%b2%d0%be-Git-%d0%94%d0%b0%d0%bb%d0%b5%d1%87%d0%b8%d0%bd%d1%81%d0%ba%d0%b8-%d0%b3%d1%80%d0%b0%d0%bd%d0%ba%d0%b8">Македонски</a>,</td></tr> <tr><td><a href="/book/pl/v2/Ga%c5%82%c4%99zie-Gita-Ga%c5%82%c4%99zie-zdalne">Polski</a>,</td></tr> <tr><td><a href="/book/sr/v2/%d0%93%d1%80%d0%b0%d0%bd%d0%b0%d1%9a%d0%b5-%d1%83-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d1%83-%d0%93%d0%b8%d1%82-%d0%a3%d0%b4%d0%b0%d1%99%d0%b5%d0%bd%d0%b5-%d0%b3%d1%80%d0%b0%d0%bd%d0%b5">Српски</a>,</td></tr> <tr><td><a href="/book/uz/v2/Git-%d0%b4%d0%b0-%d1%82%d0%b0%d1%80%d0%bc%d0%be%d2%9b%d0%bb%d0%b0%d0%bd%d0%b8%d1%88-%d0%a3%d0%b7%d0%be%d2%9b-%d0%bc%d0%b0%d1%81%d0%be%d1%84%d0%b0%d0%b4%d0%b0%d0%b3%d0%b8-%d1%82%d0%b0%d1%80%d0%bc%d0%be%d2%9b%d0%bb%d0%b0%d1%80">Ўзбекча</a>,</td></tr> <tr><td><a href="/book/zh-tw/v2/%e4%bd%bf%e7%94%a8-Git-%e5%88%86%e6%94%af-%e9%81%a0%e7%ab%af%e5%88%86%e6%94%af">繁體中文</a>,</td></tr> </table> </p> <p> Translations started for <table> <tr><td><a href="/book/be/v2/Git-Branching-Remote-Branches">Беларуская</a>,</td></tr> <tr><td><a href="/book/fa/v2/%d8%b4%d8%a7%d8%ae%d9%87%e2%80%8c%d8%b3%d8%a7%d8%b2%db%8c-%d8%af%d8%b1-%da%af%db%8c%d8%aa-%d8%b4%d8%a7%d8%ae%d9%87%e2%80%8c%d9%87%d8%a7%db%8c-%d8%b1%db%8c%d9%85%d9%88%d8%aa" dir="rtl">فارسی</a>,</td></tr> <tr><td><a href="/book/id/v2/Git-Branching-Remote-Branches">Indonesian</a>,</td></tr> <tr><td><a href="/book/it/v2/Git-Branching-Remote-Branches">Italiano</a>,</td></tr> <tr><td><a href="/book/ms/v2/Git-Branching-Remote-Branches">Bahasa Melayu</a>,</td></tr> <tr><td><a href="/book/pt-br/v2/Branches-no-Git-Branches-remotos">Português (Brasil)</a>,</td></tr> <tr><td><a href="/book/pt-pt/v2/Ramifica%c3%a7%c3%a3o-do-Git-Remote-Branches">Português (Portugal)</a>,</td></tr> <tr><td><a href="/book/sv/v2/Git-f%c3%b6rgreningar-Fj%c3%a4rrgrenar">Svenska</a>,</td></tr> <tr><td><a href="/book/tr/v2/Git-Dallar%c4%b1-Uzak-Dallar">Türkçe</a>.</td></tr> </table> </p> <hr class="sidebar"/> <p> The source of this book is <a href="https://github.com/progit/progit2-nl">hosted on GitHub.</a></br> Patches, suggestions and comments are welcome. </p> </nav> </aside> <div id="content"> <div id="book-chapters"> <a class="dropdown-trigger" id="book-chapters-trigger" data-panel-id="chapters-dropdown" href="#">Chapters ▾</a> <div class='dropdown-panel' id='chapters-dropdown'> <div class='three-column'> <div class="column-left"> <ol class='book-toc'> <li class='chapter'> <h2>1. <a href="/book/nl/v2/Aan-de-slag-Over-versiebeheer">Aan de slag</a></h2> <ol> <li> 1.1 <a href="/book/nl/v2/Aan-de-slag-Over-versiebeheer">Over versiebeheer</a> </li> <li> 1.2 <a href="/book/nl/v2/Aan-de-slag-Een-kort-historisch-overzicht-van-Git">Een kort historisch overzicht van Git</a> </li> <li> 1.3 <a href="/book/nl/v2/Aan-de-slag-Wat-is-Git%3F">Wat is Git?</a> </li> <li> 1.4 <a href="/book/nl/v2/Aan-de-slag-De-commando-regel">De commando-regel</a> </li> <li> 1.5 <a href="/book/nl/v2/Aan-de-slag-Git-installeren">Git installeren</a> </li> <li> 1.6 <a href="/book/nl/v2/Aan-de-slag-Git-klaarmaken-voor-eerste-gebruik">Git klaarmaken voor eerste gebruik</a> </li> <li> 1.7 <a href="/book/nl/v2/Aan-de-slag-Hulp-krijgen">Hulp krijgen</a> </li> <li> 1.8 <a href="/book/nl/v2/Aan-de-slag-Samenvatting">Samenvatting</a> </li> </ol> </li> <li class='chapter'> <h2>2. <a href="/book/nl/v2/Git-Basics-Een-Git-repository-verkrijgen">Git Basics</a></h2> <ol> <li> 2.1 <a href="/book/nl/v2/Git-Basics-Een-Git-repository-verkrijgen">Een Git repository verkrijgen</a> </li> <li> 2.2 <a href="/book/nl/v2/Git-Basics-Wijzigingen-aan-de-repository-vastleggen">Wijzigingen aan de repository vastleggen</a> </li> <li> 2.3 <a href="/book/nl/v2/Git-Basics-De-commit-geschiedenis-bekijken">De commit geschiedenis bekijken</a> </li> <li> 2.4 <a href="/book/nl/v2/Git-Basics-Dingen-ongedaan-maken">Dingen ongedaan maken</a> </li> <li> 2.5 <a href="/book/nl/v2/Git-Basics-Werken-met-remotes">Werken met remotes</a> </li> <li> 2.6 <a href="/book/nl/v2/Git-Basics-Taggen-Labelen">Taggen (Labelen)</a> </li> <li> 2.7 <a href="/book/nl/v2/Git-Basics-Git-aliassen">Git aliassen</a> </li> <li> 2.8 <a href="/book/nl/v2/Git-Basics-Samenvatting">Samenvatting</a> </li> </ol> </li> <li class='chapter'> <h2>3. <a href="/book/nl/v2/Branchen-in-Git-Branches-in-vogelvlucht">Branchen in Git</a></h2> <ol> <li> 3.1 <a href="/book/nl/v2/Branchen-in-Git-Branches-in-vogelvlucht">Branches in vogelvlucht</a> </li> <li> 3.2 <a href="/book/nl/v2/Branchen-in-Git-Eenvoudig-branchen-en-mergen">Eenvoudig branchen en mergen</a> </li> <li> 3.3 <a href="/book/nl/v2/Branchen-in-Git-Branch-beheer">Branch-beheer</a> </li> <li> 3.4 <a href="/book/nl/v2/Branchen-in-Git-Branch-workflows">Branch workflows</a> </li> <li> 3.5 <a href="/book/nl/v2/Branchen-in-Git-Branches-op-afstand-Remote-branches" class="active">Branches op afstand (Remote branches)</a> </li> <li> 3.6 <a href="/book/nl/v2/Branchen-in-Git-Rebasen">Rebasen</a> </li> <li> 3.7 <a href="/book/nl/v2/Branchen-in-Git-Samenvatting">Samenvatting</a> </li> </ol> </li> <li class='chapter'> <h2>4. <a href="/book/nl/v2/Git-op-de-server-De-protocollen">Git op de server</a></h2> <ol> <li> 4.1 <a href="/book/nl/v2/Git-op-de-server-De-protocollen">De protocollen</a> </li> <li> 4.2 <a href="/book/nl/v2/Git-op-de-server-Git-op-een-server-krijgen">Git op een server krijgen</a> </li> <li> 4.3 <a href="/book/nl/v2/Git-op-de-server-Je-publieke-SSH-sleutel-genereren">Je publieke SSH sleutel genereren</a> </li> <li> 4.4 <a href="/book/nl/v2/Git-op-de-server-De-server-opzetten">De server opzetten</a> </li> <li> 4.5 <a href="/book/nl/v2/Git-op-de-server-Git-Daemon">Git Daemon</a> </li> <li> 4.6 <a href="/book/nl/v2/Git-op-de-server-Slimme-HTTP">Slimme HTTP</a> </li> <li> 4.7 <a href="/book/nl/v2/Git-op-de-server-GitWeb">GitWeb</a> </li> <li> 4.8 <a href="/book/nl/v2/Git-op-de-server-GitLab">GitLab</a> </li> <li> 4.9 <a href="/book/nl/v2/Git-op-de-server-Hosting-oplossingen-van-derden">Hosting oplossingen van derden</a> </li> <li> 4.10 <a href="/book/nl/v2/Git-op-de-server-Samenvatting">Samenvatting</a> </li> </ol> </li> <li class='chapter'> <h2>5. <a href="/book/nl/v2/Gedistribueerd-Git-Gedistribueerde-workflows">Gedistribueerd Git</a></h2> <ol> <li> 5.1 <a href="/book/nl/v2/Gedistribueerd-Git-Gedistribueerde-workflows">Gedistribueerde workflows</a> </li> <li> 5.2 <a href="/book/nl/v2/Gedistribueerd-Git-Bijdragen-aan-een-project">Bijdragen aan een project</a> </li> <li> 5.3 <a href="/book/nl/v2/Gedistribueerd-Git-Het-beheren-van-een-project">Het beheren van een project</a> </li> <li> 5.4 <a href="/book/nl/v2/Gedistribueerd-Git-Samenvatting">Samenvatting</a> </li> </ol> </li> </ol> </div> <div class='column-middle'> <ol class='book-toc'> <li class='chapter'> <h2>6. <a href="/book/nl/v2/GitHub-Account-setup-en-configuratie">GitHub</a></h2> <ol> <li> 6.1 <a href="/book/nl/v2/GitHub-Account-setup-en-configuratie">Account setup en configuratie</a> </li> <li> 6.2 <a href="/book/nl/v2/GitHub-Aan-een-project-bijdragen">Aan een project bijdragen</a> </li> <li> 6.3 <a href="/book/nl/v2/GitHub-Een-project-onderhouden">Een project onderhouden</a> </li> <li> 6.4 <a href="/book/nl/v2/GitHub-Een-organisatie-beheren">Een organisatie beheren</a> </li> <li> 6.5 <a href="/book/nl/v2/GitHub-GitHub-Scripten">GitHub Scripten</a> </li> <li> 6.6 <a href="/book/nl/v2/GitHub-Samenvatting">Samenvatting</a> </li> </ol> </li> <li class='chapter'> <h2>7. <a href="/book/nl/v2/Git-Tools-Revisie-Selectie">Git Tools</a></h2> <ol> <li> 7.1 <a href="/book/nl/v2/Git-Tools-Revisie-Selectie">Revisie Selectie</a> </li> <li> 7.2 <a href="/book/nl/v2/Git-Tools-Interactief-stagen">Interactief stagen</a> </li> <li> 7.3 <a href="/book/nl/v2/Git-Tools-Stashen-en-opschonen">Stashen en opschonen</a> </li> <li> 7.4 <a href="/book/nl/v2/Git-Tools-Je-werk-tekenen">Je werk tekenen</a> </li> <li> 7.5 <a href="/book/nl/v2/Git-Tools-Zoeken">Zoeken</a> </li> <li> 7.6 <a href="/book/nl/v2/Git-Tools-Geschiedenis-herschrijven">Geschiedenis herschrijven</a> </li> <li> 7.7 <a href="/book/nl/v2/Git-Tools-Reset-ontrafeld">Reset ontrafeld</a> </li> <li> 7.8 <a href="/book/nl/v2/Git-Tools-Mergen-voor-gevorderden">Mergen voor gevorderden</a> </li> <li> 7.9 <a href="/book/nl/v2/Git-Tools-Rerere">Rerere</a> </li> <li> 7.10 <a href="/book/nl/v2/Git-Tools-Debuggen-met-Git">Debuggen met Git</a> </li> <li> 7.11 <a href="/book/nl/v2/Git-Tools-Submodules">Submodules</a> </li> <li> 7.12 <a href="/book/nl/v2/Git-Tools-Bundelen">Bundelen</a> </li> <li> 7.13 <a href="/book/nl/v2/Git-Tools-Vervangen">Vervangen</a> </li> <li> 7.14 <a href="/book/nl/v2/Git-Tools-Het-opslaan-van-inloggegevens">Het opslaan van inloggegevens</a> </li> <li> 7.15 <a href="/book/nl/v2/Git-Tools-Samenvatting">Samenvatting</a> </li> </ol> </li> <li class='chapter'> <h2>8. <a href="/book/nl/v2/Git-aanpassen-Git-configuratie">Git aanpassen</a></h2> <ol> <li> 8.1 <a href="/book/nl/v2/Git-aanpassen-Git-configuratie">Git configuratie</a> </li> <li> 8.2 <a href="/book/nl/v2/Git-aanpassen-Git-attributen">Git attributen</a> </li> <li> 8.3 <a href="/book/nl/v2/Git-aanpassen-Git-Hooks">Git Hooks</a> </li> <li> 8.4 <a href="/book/nl/v2/Git-aanpassen-Een-voorbeeld-van-Git-afgedwongen-beleid">Een voorbeeld van Git-afgedwongen beleid</a> </li> <li> 8.5 <a href="/book/nl/v2/Git-aanpassen-Samenvatting">Samenvatting</a> </li> </ol> </li> <li class='chapter'> <h2>9. <a href="/book/nl/v2/Git-en-andere-systemen-Git-als-een-client">Git en andere systemen</a></h2> <ol> <li> 9.1 <a href="/book/nl/v2/Git-en-andere-systemen-Git-als-een-client">Git als een client</a> </li> <li> 9.2 <a href="/book/nl/v2/Git-en-andere-systemen-Migreren-naar-Git">Migreren naar Git</a> </li> <li> 9.3 <a href="/book/nl/v2/Git-en-andere-systemen-Samenvatting">Samenvatting</a> </li> </ol> </li> <li class='chapter'> <h2>10. <a href="/book/nl/v2/Git-Binnenwerk-Binnenwerk-en-koetswerk-plumbing-and-porcelain">Git Binnenwerk</a></h2> <ol> <li> 10.1 <a href="/book/nl/v2/Git-Binnenwerk-Binnenwerk-en-koetswerk-plumbing-and-porcelain">Binnenwerk en koetswerk (plumbing and porcelain)</a> </li> <li> 10.2 <a href="/book/nl/v2/Git-Binnenwerk-Git-objecten">Git objecten</a> </li> <li> 10.3 <a href="/book/nl/v2/Git-Binnenwerk-Git-Referenties">Git Referenties</a> </li> <li> 10.4 <a href="/book/nl/v2/Git-Binnenwerk-Packfiles">Packfiles</a> </li> <li> 10.5 <a href="/book/nl/v2/Git-Binnenwerk-De-Refspec">De Refspec</a> </li> <li> 10.6 <a href="/book/nl/v2/Git-Binnenwerk-Uitwisseling-protocollen">Uitwisseling protocollen</a> </li> <li> 10.7 <a href="/book/nl/v2/Git-Binnenwerk-Onderhoud-en-gegevensherstel">Onderhoud en gegevensherstel</a> </li> <li> 10.8 <a href="/book/nl/v2/Git-Binnenwerk-Omgevingsvariabelen">Omgevingsvariabelen</a> </li> <li> 10.9 <a href="/book/nl/v2/Git-Binnenwerk-Samenvatting">Samenvatting</a> </li> </ol> </li> </ol> </div> <div class='column-right'> <ol class='book-toc'> <li class='chapter'> <h2>A1. <a href="/book/nl/v2/Bijlage-A:-Git-in-andere-omgevingen-Grafische-interfaces">Bijlage A: Git in andere omgevingen</a></h2> <ol> <li> A1.1 <a href="/book/nl/v2/Bijlage-A:-Git-in-andere-omgevingen-Grafische-interfaces">Grafische interfaces</a> </li> <li> A1.2 <a href="/book/nl/v2/Bijlage-A:-Git-in-andere-omgevingen-Git-in-Visual-Studio">Git in Visual Studio</a> </li> <li> A1.3 <a href="/book/nl/v2/Bijlage-A:-Git-in-andere-omgevingen-Git-in-Visual-Studio-Code">Git in Visual Studio Code</a> </li> <li> A1.4 <a href="/book/nl/v2/Bijlage-A:-Git-in-andere-omgevingen-Git-in-Eclipse">Git in Eclipse</a> </li> <li> A1.5 <a href="/book/nl/v2/Bijlage-A:-Git-in-andere-omgevingen-Git-in-Sublime-Text">Git in Sublime Text</a> </li> <li> A1.6 <a href="/book/nl/v2/Bijlage-A:-Git-in-andere-omgevingen-Git-in-Bash">Git in Bash</a> </li> <li> A1.7 <a href="/book/nl/v2/Bijlage-A:-Git-in-andere-omgevingen-Git-in-Zsh">Git in Zsh</a> </li> <li> A1.8 <a href="/book/nl/v2/Bijlage-A:-Git-in-andere-omgevingen-Git-in-PowerShell">Git in PowerShell</a> </li> <li> A1.9 <a href="/book/nl/v2/Bijlage-A:-Git-in-andere-omgevingen-Samenvatting">Samenvatting</a> </li> </ol> </li> <li class='chapter'> <h2>A2. <a href="/book/nl/v2/Bijlage-B:-Git-in-je-applicaties-inbouwen-Commando-regel-Git">Bijlage B: Git in je applicaties inbouwen</a></h2> <ol> <li> A2.1 <a href="/book/nl/v2/Bijlage-B:-Git-in-je-applicaties-inbouwen-Commando-regel-Git">Commando-regel Git</a> </li> <li> A2.2 <a href="/book/nl/v2/Bijlage-B:-Git-in-je-applicaties-inbouwen-Libgit2">Libgit2</a> </li> <li> A2.3 <a href="/book/nl/v2/Bijlage-B:-Git-in-je-applicaties-inbouwen-JGit">JGit</a> </li> <li> A2.4 <a href="/book/nl/v2/Bijlage-B:-Git-in-je-applicaties-inbouwen-go-git">go-git</a> </li> <li> A2.5 <a href="/book/nl/v2/Bijlage-B:-Git-in-je-applicaties-inbouwen-Dulwich">Dulwich</a> </li> </ol> </li> <li class='chapter'> <h2>A3. <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Setup-en-configuratie">Bijlage C: Git Commando’s</a></h2> <ol> <li> A3.1 <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Setup-en-configuratie">Setup en configuratie</a> </li> <li> A3.2 <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Projecten-ophalen-en-maken">Projecten ophalen en maken</a> </li> <li> A3.3 <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Basic-Snapshotten">Basic Snapshotten</a> </li> <li> A3.4 <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Branchen-en-mergen">Branchen en mergen</a> </li> <li> A3.5 <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Projecten-delen-en-bijwerken">Projecten delen en bijwerken</a> </li> <li> A3.6 <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Inspectie-en-vergelijking">Inspectie en vergelijking</a> </li> <li> A3.7 <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Debuggen">Debuggen</a> </li> <li> A3.8 <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Patchen">Patchen</a> </li> <li> A3.9 <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Email">Email</a> </li> <li> A3.10 <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Externe-systemen">Externe systemen</a> </li> <li> A3.11 <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Beheer">Beheer</a> </li> <li> A3.12 <a href="/book/nl/v2/Bijlage-C:-Git-Commando%e2%80%99s-Binnenwerk-commando%e2%80%99s-plumbing-commando%e2%80%99s">Binnenwerk commando’s (plumbing commando’s)</a> </li> </ol> </li> </ol> </div> </div> </div> <span class="light" id="edition"> 2nd Edition </span> </div> <div id="main" data-pagefind-filter="category:book" data-pagefind-meta="category:Book" data-pagefind-weight="0.05" data-pagefind-body class="book edition2"> <h1>3.5 Branchen in Git - Branches op afstand (Remote branches)</h1> <div> <h2 id="_remote_branches">Branches op afstand (Remote branches)</h2> <div class="paragraph"> <p> Remote branches zijn referenties (pointers) naar jouw remote repositories, inclusief branches, tags, enz. Je kunt een volledige lijst van remote referenties expliciet krijgen met <code>git ls-remote [remote]</code> of ook <code>git remote show [remote]</code> voor zowel remote branches als voor meer informatie. Niettemin is heth gebruikelijker om te profiteren van remote-tracking branches.</p> </div> <div class="paragraph"> <p>Remote-tracking branches zijn referenties naar de staat van remote branches. Het zijn lokale referenties die je niet kunt verplaatsen; Git verplaatst ze automatisch voor je op de momenten dat je een vorm van netwerk communicatie uitvoert, dit om te verzekeren dat ze een accurate representatie zijn van de staat van de remote repository. Remote-tracking branches gedragen zich als boekenleggers om je eraan te helpen herinneren wat de staat van de branches was van je remote repositories toen je voor het laatst met ze in contact was.</p> </div> <div class="paragraph"> <p>Remote-tracking branch namen hebben de vorm <code>&lt;remote&gt;/&lt;branch&gt;</code>. Bijvoorbeeld, als je wil zien hoe de <code>master</code>-branch op je <code>origin</code> remote er uitzag de laatste keer dat je er mee communiceerde, dan zal je de <code>origin/master</code>-branch moeten bekijken. Als je samen met een partner aan het werk bent met een probleem en zij heeft een <code>iss53</code>-branch gepusht, is het niet onmogelijk dat je zelf een eigen lokale <code>iss53</code> hebt, maar de branch op de server zal vertegenwoordigd zijn door de remote-tracking branch <code>origin/iss53</code>.</p> </div> <div class="paragraph"> <p>Dit kan wat verwarrend zijn, dus laten we eens naar een voorbeeld kijken. Stel dat je een Git-server in je netwerk hebt op <code>git.ourcompany.com</code>. Als je hiervan kloont dan wordt die door het <code>clone</code> commando van Git automatisch <code>origin</code> voor je genoemd, Git haalt alle gegevens binnen, maakt een verwijzing naar waar de <code>master</code>-branch is en noemt dat lokaal <code>origin/master</code>. Git geeft je ook een eigen lokale <code>master</code>-branch, beginnend op dezelfde plaats als de <code>master</code>-branch van origin, zodat je iets hebt om vanaf te werken.</p> </div> <div class="admonitionblock note"> <table> <tr> <td class="icon"> <div class="title">Noot</div> </td> <td class="content"> <div class="title">“origin” is niets speciaal</div> <div class="paragraph"> <p>Net als de branch naam “master” geen enkele speciale betekenis heeft in Git, heeft “origin” dat ook niet. Waar “master” de standaard naam is voor een branch die dient als beginpunt als je <code>git init</code> aanroept, wat de enige reden is waarom het zo vaak wordt gebruikt, is “origin” de standaard naam voor een remote als je <code>git clone</code> aanroept. Als je <code>git clone -o booyah</code> gebruikt, krijg je <code>booyah/master</code> als je standaard remote branch.</p> </div> </td> </tr> </table> </div> <div class="imageblock"> <div class="content"> <img src="/book/nl/v2/images/remote-branches-1.png" alt="Server en lokale repositories na klonen."> </div> <div class="title">Figuur 30. Server en lokale repositories na klonen</div> </div> <div class="paragraph"> <p>Als je wat werk doet op je lokale <code>master</code>-branch, en in de tussentijd pusht iemand anders iets naar <code>git.ourcompany.com</code> waardoor die <code>master</code>-branch wordt vernieuwd, dan zijn jullie histories verschillend vooruit geschoven. En zolang je geen contact hebt met de origin server, zal jouw <code>origin/master</code> verwijzing niet verplaatsen.</p> </div> <div class="imageblock"> <div class="content"> <img src="/book/nl/v2/images/remote-branches-2.png" alt="Lokaal en remote werk kan gaan afwijken."> </div> <div class="title">Figuur 31. Lokaal en remote werk kan gaan afwijken</div> </div> <div class="paragraph"> <p>Om je werk te synchroniseren met een gegeven remote, voer je een <code>git fetch &lt;remote&gt;</code> commando uit (in ons geval, <code>git fetch origin</code>). Dit commando bekijkt welke server “origin” is (in dit geval is het <code>git.ourcompany.com</code>), haalt gegevens er vanaf die je nog niet hebt en vernieuwt je lokale database, waarbij je <code>origin/master</code>-verwijzing naar zijn nieuwe positie verplaatst wordt die meer up-to-date is.</p> </div> <div class="imageblock"> <div class="content"> <img src="/book/nl/v2/images/remote-branches-3.png" alt="`git fetch` vernieuwt je remote referenties."> </div> <div class="title">Figuur 32. <code>git fetch</code> vernieuwt je remote referenties</div> </div> <div class="paragraph"> <p>Om het hebben van meerdere remote servers te demonstreren en hoe remote branches voor die remote projecten er uitzien, zullen we aannemen dat je nog een interne Git-server hebt die alleen wordt gebruikt voor ontwikkelingen gedaan door een van je sprint teams. Deze server bevindt zich op <code>git.team1.ourcompany.com</code>. Je kunt het als een nieuwe remote referentie toevoegen aan het project waar je nu aan werkt door het <code>git remote add</code> commando uit te voeren, zoals we behandeld hebben in <a href="/book/nl/v2/ch00/ch02-git-basics-chapter">Git Basics</a>. Noem deze remote <code>teamone</code>, wat jouw afkorting voor die hele URL wordt.</p> </div> <div class="imageblock"> <div class="content"> <img src="/book/nl/v2/images/remote-branches-4.png" alt="Een andere server toevoegen als remote."> </div> <div class="title">Figuur 33. Een andere server toevoegen als remote</div> </div> <div class="paragraph"> <p>Nu kun je <code>git fetch teamone</code> uitvoeren om alles op te halen dat wat de <code>teamone</code> remote server heeft en jij nog niet. Omdat die server een subset heeft van de gegevens die jouw <code>origin</code> server op dit moment heeft, haalt Git geen gegevens op maar maakt een remote-tracking branch genaamd <code>teamone/master</code> aan en laat die wijzen naar de commit die <code>teamone</code> heeft als zijn <code>master</code>-branch.</p> </div> <div class="imageblock"> <div class="content"> <img src="/book/nl/v2/images/remote-branches-5.png" alt="Remote tracking branch voor `teamone/master`."> </div> <div class="title">Figuur 34. Remote tracking branch voor <code>teamone/master</code> </div> </div> <div class="sect3"> <h3 id="_pushing_branches">Pushen</h3> <div class="paragraph"> <p> Als je een branch wil delen met de rest van de wereld, dan moet je het naar een remote terugzetten waar je schrijftoegang op hebt. Je lokale branches worden niet automatisch gesynchroniseerd met de remotes waar je naar schrijft — je moet de branches die je wilt delen expliciet pushen. Op die manier kun je privé branches gebruiken voor het werk dat je niet wil delen, en alleen die topic branches pushen waar je op wilt samenwerken.</p> </div> <div class="paragraph"> <p>Als je een branch genaamd <code>serverfix</code> hebt waar je met anderen aan wilt werken, dan kun je die op dezelfde manier pushen als waarop je dat voor de eerste branch hebt gedaan. Voer <code>git push &lt;remote&gt; &lt;branch&lt;</code> uit:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git push origin serverfix Counting objects: 24, done. Delta compression using up to 8 threads. Compressing objects: 100% (15/15), done. Writing objects: 100% (24/24), 1.91 KiB | 0 bytes/s, done. Total 24 (delta 2), reused 0 (delta 0) To https://github.com/schacon/simplegit * [new branch] serverfix -&gt; serverfix</code></pre> </div> </div> <div class="paragraph"> <p>Dit is wel een beetje de bocht afsnijden. Git zal de <code>serverfix</code>-branchnaam automatisch expanderen naar <code>refs/heads/serverfix:refs/heads/serverfix</code>, wat staat voor “Neem mijn lokale serverfix branch en push die om de serverfix branch van de remote te vernieuwen.”. We zullen het <code>refs/heads</code> gedeelte gedetaileerd behandelen in <a href="/book/nl/v2/ch00/ch10-git-internals">Git Binnenwerk</a>, maar je kunt het normaalgesproken weglaten. Je kun ook <code>git push origin serverfix:serverfix</code> doen, wat hetzelfde doet. Dit staat voor “Neem mijn serverfix en maak het de serverfix van de remote.” Je kunt dit formaat gebruiken om een lokale branch te pushen naar een remote branch die anders heet. Als je niet wil dat het <code>serverfix</code> heet aan de remote kant, kan je in plaats daarvan <code>git push origin serverfix:awesomebranch</code> gebruiken om je lokale <code>serverfix</code>-branch naar de <code>awesomebranch</code> op het remote project te pushen.</p> </div> <div class="admonitionblock note"> <table> <tr> <td class="icon"> <div class="title">Noot</div> </td> <td class="content"> <div class="title">Type niet elke keer je wachtwoord</div> <div class="paragraph"> <p>Als je een HTTPS URL gebruikt om mee te pushen, zal de Git server je elke keer vragen naar je usernaam en wachtwoord voor authenticatie. Standaard zal het je via de terminal vragen (prompten) om deze informatie zodat de server kan vaststellen of je mag pushen.</p> </div> <div class="paragraph"> <p>Als je dit niet elke keer wilt intypen als je pusht, kan je een “credential cache” opzetten. Het eenvoudigste is om het gewoon in het geheugen te houden voor een aantal minuten. Dit kan je simpel opzetten door <code>git config --global credential.helper cache</code> aan te roepen.</p> </div> <div class="paragraph"> <p>Voor meer informatie over de verschillende beschikbare credential caching opties, zie <a href="/book/nl/v2/ch00/_credential_caching">Het opslaan van inloggegevens</a>.</p> </div> </td> </tr> </table> </div> <div class="paragraph"> <p>De volgende keer dat één van je medewerkers van de server fetcht zal deze een referentie krijgen naar de versie van <code>serverfix</code> op de server, onder de remote branch <code>origin/serverfix</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git fetch origin remote: Counting objects: 7, done. remote: Compressing objects: 100% (2/2), done. remote: Total 3 (delta 0), reused 3 (delta 0) Unpacking objects: 100% (3/3), done. From https://github.com/schacon/simplegit * [new branch] serverfix -&gt; origin/serverfix</code></pre> </div> </div> <div class="paragraph"> <p>Het is belangrijk om op te merken dat wanneer je een fetch doet die nieuwe remote-tracking branches ophaalt, je niet automatisch lokale aanpasbare kopieën daarvan hebt. In andere woorden, in dit geval heb je geen nieuwe <code>serverfix</code>-branch — je hebt alleen een <code>origin/serverfix</code> verwijzing die je niet kunt aanpassen.</p> </div> <div class="paragraph"> <p>Om dit werk in je huidige werk branch te mergen, kun je <code>git merge origin/serverfix</code> uitvoeren. Als je een eigen <code>serverfix</code>-branch wilt waar je op kunt werken, dan kun je deze op je remote-tracking branch baseren:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git checkout -b serverfix origin/serverfix Branch serverfix set up to track remote branch serverfix from origin. Switched to a new branch 'serverfix'</code></pre> </div> </div> <div class="paragraph"> <p>Dit maakt een lokale branch aan waar je op kunt werken, die begint waar <code>origin/serverfix</code> is.</p> </div> </div> <div class="sect3"> <h3 id="_tracking_branches">Tracking branches</h3> <div class="paragraph"> <p> Een lokale branch uitchecken van een remote-tracking branch creëert automatisch een zogenoemde “tracking branch” (“volg branch”, en de branch die hij volgt heet een “upstream branch”). Tracking branches zijn lokale branches die een directe releatie met een remote branch hebben. Als je op een tracking branch zit en <code>git pull</code> typt, dat weet Git automatisch naar welke server moet gaan om de wijzigingen op te halen en in welke branch deze moeten worden gemerged.</p> </div> <div class="paragraph"> <p>Als je een repository kloont, zal het over het algemeen automatisch een <code>master</code>-branch aanmaken die <code>origin/master</code> trackt. Maar je kan ook andere tracking branches aanmaken als je dat wilt — andere die branches op andere remotes tracken, of niet de <code>master</code>-branch tracken. Een eenvoudig voorbeeld is wat je zojuist gezien hebt: <code>git checkout -b &lt;branch&gt; &lt;remotenaam&gt;/&lt;branch&gt;</code> uitvoeren. Deze operatie komt dusdanig vaak voor dat Git de <code>--track</code> afkorting levert:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git checkout --track origin/serverfix Branch serverfix set up to track remote branch serverfix from origin. Switched to a new branch 'serverfix'</code></pre> </div> </div> <div class="paragraph"> <p>Sterker nog, dit is zo gewoon dat er zelfs een afkorting voor de afkorting is. Als de branch naam die je uit wilt checken (a) niet bestaat en (b) dezelfde naam maar op een remote voorkomt, zal Git een tracking branch voor je aanmaken:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git checkout serverfix Branch serverfix set up to track remote branch serverfix from origin. Switched to a new branch 'serverfix'</code></pre> </div> </div> <div class="paragraph"> <p>Om een lokale branch te maken met een andere naam dan de remote branch, kun je simpelweg de eerste variant met een andere lokale branchnaam gebruiken:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git checkout -b sf origin/serverfix Branch sf set up to track remote branch serverfix from origin. Switched to a new branch 'sf'</code></pre> </div> </div> <div class="paragraph"> <p>Nu zal je lokale <code>sf</code>-branch automatisch pullen van <code>origin/serverfix</code>.</p> </div> <div class="paragraph"> <p>Als je al een lokale branch hebt en je wilt deze koppelen aan een remote branch die je zojuist gepulld hebt, of de stroomopwaartse branch die je trackt wijzigen, kan je de <code>-u</code> of <code>--set-upstream-to</code> optie gebruiken bij de <code>git branch</code> om het expliciet te zetten op de momenten dat jij het wilt.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git branch -u origin/serverfix Branch serverfix set up to track remote branch serverfix from origin.</code></pre> </div> </div> <div class="admonitionblock note"> <table> <tr> <td class="icon"> <div class="title">Noot</div> </td> <td class="content"> <div class="title">Upstream verwijzing</div> <div class="paragraph"> <p>Als je een tracking branch ingericht hebt, kan je hiernaar refereren met de <code>@{upstream}</code> of <code>@{u}</code> verwijzing. Dus als je op de <code>master</code>-branch zit en deze <code>origin/master</code> trackt, kan je iets als <code>git merge @{u}</code> opgeven in plaats van <code>git merge origin/master</code> als je zou willen.</p> </div> </td> </tr> </table> </div> <div class="paragraph"> <p>Als je wilt zien welke tracking branches je ingericht hebt, kan je de <code>-vv</code> optie aan <code>git branch</code> meegeven. Dit zal jouw lokale branches afdrukken met meer informatie, inclusief wat elk van de branches trackt en of je lokale branch voorloopt, acherloopt of beide.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git branch -vv iss53 7e424c3 [origin/iss53: ahead 2] forgot the brackets master 1ae2a45 [origin/master] deploying index fix * serverfix f8674d9 [teamone/server-fix-good: ahead 3, behind 1] this should do it testing 5ea463a trying something new</code></pre> </div> </div> <div class="paragraph"> <p>Dus hier kunnen we zien dat onze <code>iss53</code> <code>origin/iss53</code> trackt en twee “voorloopt”, wat inhoudt dat we lokaal twee commits hebben die nog niet naar de server zijn gepusht. We kunnen ook zien dat onze <code>master</code>-branch <code>origin/master</code> trackt en up-to-date is. Vervolgens zien we dat onze <code>serverfix</code>-branch de <code>server-fix-good</code>-branch trackt op onze <code>teamone</code> server en drie voorloopt en een achterloopt. Dit betekent dat er een commit op de server staat die we nog niet hebben gemerged en er drie commits lokaal staan die we nog niet gepusht hebben. Tenslotte kunnen we zien dat onze <code>testing</code>-branch geen enkele remote branch trackt.</p> </div> <div class="paragraph"> <p>Het is belangrijk om op te merken dat deze getallen accuraat zijn op het moment dat je voor het laatst gefetcht hebt van elke server. Dit commando maakt geen contact met de servers, het vertelt je wat het van deze servers lokaal heeft opgeslagen. Als je volledige up-to-date gegevens wilt hebben over voorsprong en achterstand zal je van alle remotes moeten fetchen voordat je dit aanroept. Je zou iets als volgt kunnen doen:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git fetch --all; git branch -vv</code></pre> </div> </div> </div> <div class="sect3"> <h3 id="_pullen">Pullen</h3> <div class="paragraph"> <p> Waar het <code>git fetch</code> commando alle wijzigingen van de server zal ophalen die je nog niet hebt, zal het je werk directory helemaal niet wijzigen. Het haalt simpelweg de gegevens voor je op en laat het mergen aan jou over. Er is echter een commando <code>git pull</code> geheten die feitelijk een <code>git fetch</code> onmiddelijk gevolgd door een <code>git merge</code> is in de meeste gevallen. Als je een tracking branch opgezet hebt zoals in de vorige paragraaf getoond, expliciet opgezet of voor je opgezet door de <code>clone</code> of <code>checkout</code> commando’s, zal <code>git pull</code> kijken welke server en branch je huidige branch trackt, van die server fetchen en de betreffende remote branch daarin mergen.</p> </div> <div class="paragraph"> <p>Over het algemeen is het beter om de <code>fetch</code> en <code>merge</code> commando’s expliciet te gebruiken omdat de magie van <code>git pull</code> vaak verwarrend kan zijn.</p> </div> </div> <div class="sect3"> <h3 id="_delete_branches">Remote branches verwijderen</h3> <div class="paragraph"> <p> Stel dat je klaar bent met een remote branch - zeg maar, jij en je medewerkers zijn klaar met een feature en hebben het gemerged in de <code>master</code>-branch van de remote (of welke branch jullie stabiele code ook in zit). Je kunt een remote branch verwijderen met de <code>--delete</code> optie bij <code>git push</code>. Als je de <code>serverfix</code>-branch van de server wilt verwijderen, dan voer je het volgende uit:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git push origin --delete serverfix To https://github.com/schacon/simplegit - [deleted] serverfix</code></pre> </div> </div> <div class="paragraph"> <p>Alles wat dit doet is de pointer van de server verwijderen. De Git server zal over het algemeen de gegevens nog een poos behouden totdat de garbage collection draait, dus als het per ongeluk verwijderd is, is het vaak eenvoudig terug te halen.</p> </div> </div> <div id="nav"><a href="/book/nl/v2/Branchen-in-Git-Branch-workflows">prev</a> | <a href="/book/nl/v2/Branchen-in-Git-Rebasen">next</a></div> </div> </div> </div> </div> <footer> <div class="site-source"> <a href="/site">About this site</a><br> Patches, suggestions, and comments are welcome. </div> <div class="sfc-member"> Git is a member of <a href="/sfc">Software Freedom Conservancy</a> </div> </footer> <a href="#top" class="no-js scrollToTop" id="scrollToTop" data-label="Scroll to top"> <img src="/images/icons/chevron-up@2x.png" width="20" height="20" alt="scroll-to-top"/> </a> <script src="/js/jquery-1.7.1.min.js"></script> <script src="/js/jquery-ui-1.8.18.custom.min.js"></script> <script src="/js/jquery.defaultvalue.js"></script> <script src="/js/session.min.js"></script> <script src="/js/application.min.js"></script> </div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10