CINXE.COM
Git - Jobba med fjärrförvar
<!DOCTYPE html> <html lang="sv"> <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 - Jobba med fjärrförvar</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-Basics-Working-with-Remotes">English</a>. </p> <p> Full translation available in <table> <tr><td><a href="/book/az/v2/Git%e2%80%99in-%c6%8fsaslar%c4%b1-Uzaqdan-%c4%b0%c5%9fl%c9%99m%c9%99k">azərbaycan dili</a>,</td></tr> <tr><td><a href="/book/bg/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8-%d0%bd%d0%b0-Git-%d0%a0%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%be%d1%82%d0%b4%d0%b0%d0%bb%d0%b5%d1%87%d0%b5%d0%bd%d0%b8-%d1%85%d1%80%d0%b0%d0%bd%d0%b8%d0%bb%d0%b8%d1%89%d0%b0">български език</a>,</td></tr> <tr><td><a href="/book/de/v2/Git-Grundlagen-Mit-Remotes-arbeiten">Deutsch</a>,</td></tr> <tr><td><a href="/book/es/v2/Fundamentos-de-Git-Trabajar-con-Remotos">Español</a>,</td></tr> <tr><td><a href="/book/fr/v2/Les-bases-de-Git-Travailler-avec-des-d%c3%a9p%c3%b4ts-distants">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%e5%9f%ba%e6%9c%ac-%e3%83%aa%e3%83%a2%e3%83%bc%e3%83%88%e3%81%a7%e3%81%ae%e4%bd%9c%e6%a5%ad">日本語</a>,</td></tr> <tr><td><a href="/book/ko/v2/Git%ec%9d%98-%ea%b8%b0%ec%b4%88-%eb%a6%ac%eb%aa%a8%ed%8a%b8-%ec%a0%80%ec%9e%a5%ec%86%8c">한국어</a>,</td></tr> <tr><td><a href="/book/nl/v2/Git-Basics-Werken-met-remotes">Nederlands</a>,</td></tr> <tr><td><a href="/book/ru/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d1%8b-Git-%d0%a0%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d1%83%d0%b4%d0%b0%d0%bb%d1%91%d0%bd%d0%bd%d1%8b%d0%bc%d0%b8-%d1%80%d0%b5%d0%bf%d0%be%d0%b7%d0%b8%d1%82%d0%be%d1%80%d0%b8%d1%8f%d0%bc%d0%b8">Русский</a>,</td></tr> <tr><td><a href="/book/sl/v2/Osnove-Git-Delo-z-daljavami">Slovenščina</a>,</td></tr> <tr><td><a href="/book/tl/v2/Mga-Pangunahing-Kaalaman-sa-Git-Paggawa-gamit-ang-mga-Remote">Tagalog</a>,</td></tr> <tr><td><a href="/book/uk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8-Git-%d0%92%d0%b7%d0%b0%d1%94%d0%bc%d0%be%d0%b4%d1%96%d1%8f-%d0%b7-%d0%b2%d1%96%d0%b4%d0%b4%d0%b0%d0%bb%d0%b5%d0%bd%d0%b8%d0%bc%d0%b8-%d1%81%d1%85%d0%be%d0%b2%d0%b8%d1%89%d0%b0%d0%bc%d0%b8">Українська</a></td></tr> <tr><td><a href="/book/zh/v2/Git-%e5%9f%ba%e7%a1%80-%e8%bf%9c%e7%a8%8b%e4%bb%93%e5%ba%93%e7%9a%84%e4%bd%bf%e7%94%a8">简体中文</a>,</td></tr> </table> </p> <p> Partial translations available in <table> <tr><td><a href="/book/cs/v2/Z%c3%a1klady-pr%c3%a1ce-se-syst%c3%a9mem-Git-Pr%c3%a1ce-se-vzd%c3%a1len%c3%bdmi-repozit%c3%a1%c5%99i">Čeština</a>,</td></tr> <tr><td><a href="/book/mk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-Git-Working-with-Remotes">Македонски</a>,</td></tr> <tr><td><a href="/book/pl/v2/Podstawy-Gita-Praca-ze-zdalnym-repozytorium">Polski</a>,</td></tr> <tr><td><a href="/book/sr/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b5-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b0-%d0%93%d0%b8%d1%82-%d0%a0%d0%b0%d0%b4-%d1%81%d0%b0-%d1%83%d0%b4%d0%b0%d1%99%d0%b5%d0%bd%d0%b8%d0%bc-%d1%80%d0%b5%d0%bf%d0%be%d0%b7%d0%b8%d1%82%d0%be%d1%80%d0%b8%d1%98%d1%83%d0%bc%d0%b8%d0%bc%d0%b0">Српски</a>,</td></tr> <tr><td><a href="/book/uz/v2/Git-%d0%b0%d1%81%d0%be%d1%81%d0%bb%d0%b0%d1%80%d0%b8-%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-%d0%be%d0%bc%d0%b1%d0%be%d1%80%d0%bb%d0%b0%d1%80-%d0%b1%d0%b8%d0%bb%d0%b0%d0%bd-%d0%b8%d1%88%d0%bb%d0%b0%d1%88">Ўзбекча</a>,</td></tr> <tr><td><a href="/book/zh-tw/v2/Git-%e5%9f%ba%e7%a4%8e-%e8%88%87%e9%81%a0%e7%ab%af%e5%8d%94%e5%90%8c%e5%b7%a5%e4%bd%9c">繁體中文</a>,</td></tr> </table> </p> <p> Translations started for <table> <tr><td><a href="/book/be/v2/Git-Basics-Working-with-Remotes">Беларуская</a>,</td></tr> <tr><td><a href="/book/fa/v2/%d9%85%d9%82%d8%af%d9%85%d8%a7%d8%aa-%da%af%db%8c%d8%aa-%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-%d8%b1%db%8c%d9%85%d9%88%d8%aa%e2%80%8c%d9%87%d8%a7" dir="rtl">فارسی</a>,</td></tr> <tr><td><a href="/book/id/v2/Git-Basics-Working-with-Remotes">Indonesian</a>,</td></tr> <tr><td><a href="/book/it/v2/Git-Basics-Working-with-Remotes">Italiano</a>,</td></tr> <tr><td><a href="/book/ms/v2/Git-Basics-Working-with-Remotes">Bahasa Melayu</a>,</td></tr> <tr><td><a href="/book/pt-br/v2/Fundamentos-de-Git-Trabalhando-de-Forma-Remota">Português (Brasil)</a>,</td></tr> <tr><td><a href="/book/pt-pt/v2/No%c3%a7%c3%b5es-B%c3%a1sicas-do-Git-Working-with-Remotes">Português (Portugal)</a>,</td></tr> <tr><td><a href="/book/sv/v2/Grunder-i-Git-Jobba-med-fj%c3%a4rrf%c3%b6rvar">Svenska</a>,</td></tr> <tr><td><a href="/book/tr/v2/Git-Temelleri-Uzak-Repo-ile-%c3%87al%c4%b1%c5%9fmak">Türkçe</a>.</td></tr> </table> </p> <hr class="sidebar"/> <p> The source of this book is <a href="https://github.com/progit2-sv/progit2">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/sv/v2/Kom-ig%c3%a5ng-Om-versionshantering">Kom igång</a></h2> <ol> <li> 1.1 <a href="/book/sv/v2/Kom-ig%c3%a5ng-Om-versionshantering">Om versionshantering</a> </li> <li> 1.2 <a href="/book/sv/v2/Kom-ig%c3%a5ng-En-kort-historik-av-Git">En kort historik av Git</a> </li> <li> 1.3 <a href="/book/sv/v2/Kom-ig%c3%a5ng-Vad-%c3%a4r-Git%3F">Vad är Git?</a> </li> <li> 1.4 <a href="/book/sv/v2/Kom-ig%c3%a5ng-Kommandoraden">Kommandoraden</a> </li> <li> 1.5 <a href="/book/sv/v2/Kom-ig%c3%a5ng-Installera-Git">Installera Git</a> </li> <li> 1.6 <a href="/book/sv/v2/Kom-ig%c3%a5ng-Anv%c3%a4nda-Git-f%c3%b6r-f%c3%b6rsta-g%c3%a5ngen">Använda Git för första gången</a> </li> <li> 1.7 <a href="/book/sv/v2/Kom-ig%c3%a5ng-F%c3%a5-hj%c3%a4lp">Få hjälp</a> </li> <li> 1.8 <a href="/book/sv/v2/Kom-ig%c3%a5ng-Sammanfattning">Sammanfattning</a> </li> </ol> </li> <li class='chapter'> <h2>2. <a href="/book/sv/v2/Grunder-i-Git-Skaffa-ett-Git-f%c3%b6rvar">Grunder i Git</a></h2> <ol> <li> 2.1 <a href="/book/sv/v2/Grunder-i-Git-Skaffa-ett-Git-f%c3%b6rvar">Skaffa ett Git-förvar</a> </li> <li> 2.2 <a href="/book/sv/v2/Grunder-i-Git-Spara-%c3%a4ndringar-till-f%c3%b6rvaret">Spara ändringar till förvaret</a> </li> <li> 2.3 <a href="/book/sv/v2/Grunder-i-Git-Visa-historiken">Visa historiken</a> </li> <li> 2.4 <a href="/book/sv/v2/Grunder-i-Git-%c3%85ngra-saker">Ångra saker</a> </li> <li> 2.5 <a href="/book/sv/v2/Grunder-i-Git-Jobba-med-fj%c3%a4rrf%c3%b6rvar" class="active">Jobba med fjärrförvar</a> </li> <li> 2.6 <a href="/book/sv/v2/Grunder-i-Git-Taggning">Taggning</a> </li> <li> 2.7 <a href="/book/sv/v2/Grunder-i-Git-Git-alias">Git alias</a> </li> <li> 2.8 <a href="/book/sv/v2/Grunder-i-Git-Sammanfattning">Sammanfattning</a> </li> </ol> </li> <li class='chapter'> <h2>3. <a href="/book/sv/v2/Git-f%c3%b6rgreningar-Grenar-i-ett-n%c3%b6tskal">Git förgreningar</a></h2> <ol> <li> 3.1 <a href="/book/sv/v2/Git-f%c3%b6rgreningar-Grenar-i-ett-n%c3%b6tskal">Grenar i ett nötskal</a> </li> <li> 3.2 <a href="/book/sv/v2/Git-f%c3%b6rgreningar-Grundl%c3%a4ggande-f%c3%b6rgrening-och-sammanslagning">Grundläggande förgrening och sammanslagning</a> </li> <li> 3.3 <a href="/book/sv/v2/Git-f%c3%b6rgreningar-Hantera-grenar">Hantera grenar</a> </li> <li> 3.4 <a href="/book/sv/v2/Git-f%c3%b6rgreningar-Arbetsfl%c3%b6de-med-grenar">Arbetsflöde med grenar</a> </li> <li> 3.5 <a href="/book/sv/v2/Git-f%c3%b6rgreningar-Fj%c3%a4rrgrenar">Fjärrgrenar</a> </li> <li> 3.6 <a href="/book/sv/v2/Git-f%c3%b6rgreningar-Grenflytt">Grenflytt</a> </li> <li> 3.7 <a href="/book/sv/v2/Git-f%c3%b6rgreningar-Sammanfattning">Sammanfattning</a> </li> </ol> </li> <li class='chapter'> <h2>4. <a href="/book/sv/v2/Git-p%c3%a5-servern-Protokollen">Git på servern</a></h2> <ol> <li> 4.1 <a href="/book/sv/v2/Git-p%c3%a5-servern-Protokollen">Protokollen</a> </li> <li> 4.2 <a href="/book/sv/v2/Git-p%c3%a5-servern-Skaffa-Git-p%c3%a5-en-server">Skaffa Git på en server</a> </li> <li> 4.3 <a href="/book/sv/v2/Git-p%c3%a5-servern-Generera-din-publika-SSH-nyckel">Generera din publika SSH-nyckel</a> </li> <li> 4.4 <a href="/book/sv/v2/Git-p%c3%a5-servern-Konvigurera-servern">Konvigurera servern</a> </li> <li> 4.5 <a href="/book/sv/v2/Git-p%c3%a5-servern-Git-Daemonen">Git Daemonen</a> </li> <li> 4.6 <a href="/book/sv/v2/Git-p%c3%a5-servern-Smart-HTTP">Smart HTTP</a> </li> <li> 4.7 <a href="/book/sv/v2/Git-p%c3%a5-servern-GitWeb">GitWeb</a> </li> <li> 4.8 <a href="/book/sv/v2/Git-p%c3%a5-servern-GitLab">GitLab</a> </li> <li> 4.9 <a href="/book/sv/v2/Git-p%c3%a5-servern-Alternativ-tillhandah%c3%a5llna-av-tredje-part">Alternativ tillhandahållna av tredje part</a> </li> <li> 4.10 <a href="/book/sv/v2/Git-p%c3%a5-servern-Sammanfattning">Sammanfattning</a> </li> </ol> </li> <li class='chapter'> <h2>5. <a href="/book/sv/v2/Distribuerade-Git-Distribuerade-arbetsfl%c3%b6den">Distribuerade Git</a></h2> <ol> <li> 5.1 <a href="/book/sv/v2/Distribuerade-Git-Distribuerade-arbetsfl%c3%b6den">Distribuerade arbetsflöden</a> </li> <li> 5.2 <a href="/book/sv/v2/Distribuerade-Git-Medverka-i-ett-projekt">Medverka i ett projekt</a> </li> <li> 5.3 <a href="/book/sv/v2/Distribuerade-Git-Underh%c3%a5lla-ett-projekt">Underhålla ett projekt</a> </li> <li> 5.4 <a href="/book/sv/v2/Distribuerade-Git-Sammanfattning">Sammanfattning</a> </li> </ol> </li> </ol> </div> <div class='column-middle'> <ol class='book-toc'> <li class='chapter'> <h2>6. <a href="/book/sv/v2/GitHub-Account-Setup-and-Configuration">GitHub</a></h2> <ol> <li> 6.1 <a href="/book/sv/v2/GitHub-Account-Setup-and-Configuration">Account Setup and Configuration</a> </li> <li> 6.2 <a href="/book/sv/v2/GitHub-Contributing-to-a-Project">Contributing to a Project</a> </li> <li> 6.3 <a href="/book/sv/v2/GitHub-Maintaining-a-Project">Maintaining a Project</a> </li> <li> 6.4 <a href="/book/sv/v2/GitHub-Managing-an-organization">Managing an organization</a> </li> <li> 6.5 <a href="/book/sv/v2/GitHub-Scripting-GitHub">Scripting GitHub</a> </li> <li> 6.6 <a href="/book/sv/v2/GitHub-Summary">Summary</a> </li> </ol> </li> <li class='chapter'> <h2>7. <a href="/book/sv/v2/Git-Tools-Revision-Selection">Git Tools</a></h2> <ol> <li> 7.1 <a href="/book/sv/v2/Git-Tools-Revision-Selection">Revision Selection</a> </li> <li> 7.2 <a href="/book/sv/v2/Git-Tools-Interactive-Staging">Interactive Staging</a> </li> <li> 7.3 <a href="/book/sv/v2/Git-Tools-Stashing-and-Cleaning">Stashing and Cleaning</a> </li> <li> 7.4 <a href="/book/sv/v2/Git-Tools-Signing-Your-Work">Signing Your Work</a> </li> <li> 7.5 <a href="/book/sv/v2/Git-Tools-Searching">Searching</a> </li> <li> 7.6 <a href="/book/sv/v2/Git-Tools-Rewriting-History">Rewriting History</a> </li> <li> 7.7 <a href="/book/sv/v2/Git-Tools-Reset-Demystified">Reset Demystified</a> </li> <li> 7.8 <a href="/book/sv/v2/Git-Tools-Advanced-Merging">Advanced Merging</a> </li> <li> 7.9 <a href="/book/sv/v2/Git-Tools-Rerere">Rerere</a> </li> <li> 7.10 <a href="/book/sv/v2/Git-Tools-Debugging-with-Git">Debugging with Git</a> </li> <li> 7.11 <a href="/book/sv/v2/Git-Tools-Submodules">Submodules</a> </li> <li> 7.12 <a href="/book/sv/v2/Git-Tools-Bundling">Bundling</a> </li> <li> 7.13 <a href="/book/sv/v2/Git-Tools-Replace">Replace</a> </li> <li> 7.14 <a href="/book/sv/v2/Git-Tools-Credential-Storage">Credential Storage</a> </li> <li> 7.15 <a href="/book/sv/v2/Git-Tools-Summary">Summary</a> </li> </ol> </li> <li class='chapter'> <h2>8. <a href="/book/sv/v2/Customizing-Git-Git-Configuration">Customizing Git</a></h2> <ol> <li> 8.1 <a href="/book/sv/v2/Customizing-Git-Git-Configuration">Git Configuration</a> </li> <li> 8.2 <a href="/book/sv/v2/Customizing-Git-Git-Attributes">Git Attributes</a> </li> <li> 8.3 <a href="/book/sv/v2/Customizing-Git-Git-Hooks">Git Hooks</a> </li> <li> 8.4 <a href="/book/sv/v2/Customizing-Git-An-Example-Git-Enforced-Policy">An Example Git-Enforced Policy</a> </li> <li> 8.5 <a href="/book/sv/v2/Customizing-Git-Summary">Summary</a> </li> </ol> </li> <li class='chapter'> <h2>9. <a href="/book/sv/v2/Git-and-Other-Systems-Git-as-a-Client">Git and Other Systems</a></h2> <ol> <li> 9.1 <a href="/book/sv/v2/Git-and-Other-Systems-Git-as-a-Client">Git as a Client</a> </li> <li> 9.2 <a href="/book/sv/v2/Git-and-Other-Systems-Migrating-to-Git">Migrating to Git</a> </li> <li> 9.3 <a href="/book/sv/v2/Git-and-Other-Systems-Summary">Summary</a> </li> </ol> </li> <li class='chapter'> <h2>10. <a href="/book/sv/v2/Git-Internals-Plumbing-and-Porcelain">Git Internals</a></h2> <ol> <li> 10.1 <a href="/book/sv/v2/Git-Internals-Plumbing-and-Porcelain">Plumbing and Porcelain</a> </li> <li> 10.2 <a href="/book/sv/v2/Git-Internals-Git-Objects">Git Objects</a> </li> <li> 10.3 <a href="/book/sv/v2/Git-Internals-Git-References">Git References</a> </li> <li> 10.4 <a href="/book/sv/v2/Git-Internals-Packfiles">Packfiles</a> </li> <li> 10.5 <a href="/book/sv/v2/Git-Internals-The-Refspec">The Refspec</a> </li> <li> 10.6 <a href="/book/sv/v2/Git-Internals-Transfer-Protocols">Transfer Protocols</a> </li> <li> 10.7 <a href="/book/sv/v2/Git-Internals-Maintenance-and-Data-Recovery">Maintenance and Data Recovery</a> </li> <li> 10.8 <a href="/book/sv/v2/Git-Internals-Environment-Variables">Environment Variables</a> </li> <li> 10.9 <a href="/book/sv/v2/Git-Internals-Summary">Summary</a> </li> </ol> </li> </ol> </div> <div class='column-right'> <ol class='book-toc'> <li class='chapter'> <h2>A1. <a href="/book/sv/v2/Bilaga-A:-Git-in-Other-Environments-Graphical-Interfaces">Bilaga A: Git in Other Environments</a></h2> <ol> <li> A1.1 <a href="/book/sv/v2/Bilaga-A:-Git-in-Other-Environments-Graphical-Interfaces">Graphical Interfaces</a> </li> <li> A1.2 <a href="/book/sv/v2/Bilaga-A:-Git-in-Other-Environments-Git-in-Visual-Studio">Git in Visual Studio</a> </li> <li> A1.3 <a href="/book/sv/v2/Bilaga-A:-Git-in-Other-Environments-Git-in-Eclipse">Git in Eclipse</a> </li> <li> A1.4 <a href="/book/sv/v2/Bilaga-A:-Git-in-Other-Environments-Git-in-Bash">Git in Bash</a> </li> <li> A1.5 <a href="/book/sv/v2/Bilaga-A:-Git-in-Other-Environments-Git-in-Zsh">Git in Zsh</a> </li> <li> A1.6 <a href="/book/sv/v2/Bilaga-A:-Git-in-Other-Environments-Git-in-PowerShell">Git in PowerShell</a> </li> <li> A1.7 <a href="/book/sv/v2/Bilaga-A:-Git-in-Other-Environments-Summary">Summary</a> </li> </ol> </li> <li class='chapter'> <h2>A2. <a href="/book/sv/v2/Bilaga-B:-Embedding-Git-in-your-Applications-Command-line-Git">Bilaga B: Embedding Git in your Applications</a></h2> <ol> <li> A2.1 <a href="/book/sv/v2/Bilaga-B:-Embedding-Git-in-your-Applications-Command-line-Git">Command-line Git</a> </li> <li> A2.2 <a href="/book/sv/v2/Bilaga-B:-Embedding-Git-in-your-Applications-Libgit2">Libgit2</a> </li> <li> A2.3 <a href="/book/sv/v2/Bilaga-B:-Embedding-Git-in-your-Applications-JGit">JGit</a> </li> <li> A2.4 <a href="/book/sv/v2/Bilaga-B:-Embedding-Git-in-your-Applications-go-git">go-git</a> </li> <li> A2.5 <a href="/book/sv/v2/Bilaga-B:-Embedding-Git-in-your-Applications-Dulwich">Dulwich</a> </li> </ol> </li> <li class='chapter'> <h2>A3. <a href="/book/sv/v2/Bilaga-C:-Git-Commands-Setup-and-Config">Bilaga C: Git Commands</a></h2> <ol> <li> A3.1 <a href="/book/sv/v2/Bilaga-C:-Git-Commands-Setup-and-Config">Setup and Config</a> </li> <li> A3.2 <a href="/book/sv/v2/Bilaga-C:-Git-Commands-Getting-and-Creating-Projects">Getting and Creating Projects</a> </li> <li> A3.3 <a href="/book/sv/v2/Bilaga-C:-Git-Commands-Basic-Snapshotting">Basic Snapshotting</a> </li> <li> A3.4 <a href="/book/sv/v2/Bilaga-C:-Git-Commands-Branching-and-Merging">Branching and Merging</a> </li> <li> A3.5 <a href="/book/sv/v2/Bilaga-C:-Git-Commands-Sharing-and-Updating-Projects">Sharing and Updating Projects</a> </li> <li> A3.6 <a href="/book/sv/v2/Bilaga-C:-Git-Commands-Inspection-and-Comparison">Inspection and Comparison</a> </li> <li> A3.7 <a href="/book/sv/v2/Bilaga-C:-Git-Commands-Debugging">Debugging</a> </li> <li> A3.8 <a href="/book/sv/v2/Bilaga-C:-Git-Commands-Patching">Patching</a> </li> <li> A3.9 <a href="/book/sv/v2/Bilaga-C:-Git-Commands-Email">Email</a> </li> <li> A3.10 <a href="/book/sv/v2/Bilaga-C:-Git-Commands-External-Systems">External Systems</a> </li> <li> A3.11 <a href="/book/sv/v2/Bilaga-C:-Git-Commands-Administration">Administration</a> </li> <li> A3.12 <a href="/book/sv/v2/Bilaga-C:-Git-Commands-Plumbing-Commands">Plumbing Commands</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>2.5 Grunder i Git - Jobba med fjärrförvar</h1> <div> <h2 id="_remote_repos">Jobba med fjärrförvar</h2> <div class="paragraph"> <p>För att kunna samarbeta i ett Gitprojekt, behöver du veta hur du hanterar dina fjärrförvar. Fjärrförvar är versioner av ditt projekt som finns på Internet eller ett nätverk någonstans. Du kan ha flera, en som normalt är skrivskyddat eller skrivbart endast för dig. Att jobba med andra innebär att hantera dessa fjärrförvar och skicka och hämta data till och från dem när du behöver delge det du producerat. Att hanterara fjärrförvar inbegriper att veta hur du lägger till dem, tar bort sådana som inte längre är giltiga, hantera grenar på fjärrförvaren och definera dem som spårade eller inte, och mycket annat. I detta avsnitt kommer vi att täcka en del av dessa koncepten.</p> </div> <div class="admonitionblock note"> <table> <tr> <td class="icon"> <div class="title">Notera</div> </td> <td class="content"> <div class="title">Fjärrförvar kan även vara på din lokala maskin.</div> <div class="paragraph"> <p>Det är fullt möjligt att du kan jobba mot ett “fjärr''förvar som är på samma värdmaskin som du jobbar på. Ordet ``fjärr” betyder nödvändigtvis inte att förvaret finns på nätverket eller Internet, bara att det finns någon annanstans. Att jobba med ett sådant fjärrförvar inbegriper fortfarande samma sätt att skicka, hämta och applicara ändringar.</p> </div> </td> </tr> </table> </div> <div class="sect3"> <h3 id="_visa_dina_fjärrförvar">Visa dina fjärrförvar</h3> <div class="paragraph"> <p>För att se vilka fjärrförvar du har konfigurerade kan du köra kommandot <code>git remote</code>. Det listar namnen på varje fjärrförvar du har specificerat. Om du har klonat ditt förvar, borde du åtminstone se <code>origin</code> — det är standardnamnet som Git ger den server du klonat ditt förvar ifrån:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git clone https://github.com/schacon/ticgit Cloning into 'ticgit'... remote: Reusing existing pack: 1857, done. remote: Total 1857 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1857/1857), 374.35 KiB | 268.00 KiB/s, done. Resolving deltas: 100% (772/772), done. Checking connectivity... done. $ cd ticgit $ git remote origin</code></pre> </div> </div> <div class="paragraph"> <p>Du kan också specificera <code>-v</code> som även visar dig sökvägen som Git har sparat för varje namn som används när du hämtar eller skickar data till eller från fjärrförvaret:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote -v origin https://github.com/schacon/ticgit (fetch) origin https://github.com/schacon/ticgit (push)</code></pre> </div> </div> <div class="paragraph"> <p>Om du har mer än ett fjärrförvar listar kommandot alla. Som exempel kan ett förvar med flera fjärrförvar för att arbeta med flera olika kollaboratörer se ut något i stil med detta.</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ cd grit $ git remote -v bakkdoor https://github.com/bakkdoor/grit (fetch) bakkdoor https://github.com/bakkdoor/grit (push) cho45 https://github.com/cho45/grit (fetch) cho45 https://github.com/cho45/grit (push) defunkt https://github.com/defunkt/grit (fetch) defunkt https://github.com/defunkt/grit (push) koke git://github.com/koke/grit.git (fetch) koke git://github.com/koke/grit.git (push) origin git@github.com:mojombo/grit.git (fetch) origin git@github.com:mojombo/grit.git (push)</code></pre> </div> </div> <div class="paragraph"> <p>Detta betyder att vi kan hämta bidrag från vilken som helst av dessa ganska enkelt. Utöver det kanske vi har rättigheter att skicka ändringar till en eller flera av dessa, men det kan vi inte avgöra här.</p> </div> <div class="paragraph"> <p>Notera att dessa fjärrförvar använder varierande protokoll; vi kommer behandla detta mer i <a href="/book/sv/v2/ch00/_getting_git_on_a_server">Skaffa Git på en server</a>.</p> </div> </div> <div class="sect3"> <h3 id="_lägga_till_fjärrförvar">Lägga till fjärrförvar</h3> <div class="paragraph"> <p>Vi har nämnt och givit lite demonstrationer av hur kommandot <code>git clone</code> implicit lägger till <code>origin</code> som fjärrförvar för dig. Såhär gör du för att manuellt lägga till ett nytt fjärrförvar. För att lägga till ett nytt fjärrförvar i Git som ett namn som du lätt kan referera till, kör <code>git remote add <namn> <url></code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote origin $ git remote add pb https://github.com/paulboone/ticgit $ git remote -v origin https://github.com/schacon/ticgit (fetch) origin https://github.com/schacon/ticgit (push) pb https://github.com/paulboone/ticgit (fetch) pb https://github.com/paulboone/ticgit (push)</code></pre> </div> </div> <div class="paragraph"> <p>Nu kan du använda namnet <code>pb</code> på kommandoraden istället för hela sökvägen. Om du till exempel vill hämta all information som Paul har men som du inte har i ditt lokala förvar, kan du köra <code>git fetch pb</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git fetch pb remote: Counting objects: 43, done. remote: Compressing objects: 100% (36/36), done. remote: Total 43 (delta 10), reused 31 (delta 5) Unpacking objects: 100% (43/43), done. From https://github.com/paulboone/ticgit * [new branch] master -> pb/master * [new branch] ticgit -> pb/ticgit</code></pre> </div> </div> <div class="paragraph"> <p>Pauls master-gren är nu tillgänglig lokalt som <code>pb/master</code> — du kan slå samman dessa ändringar in i någon av dina grenar eller du kan checka ut en lokal gren av samma version om du vill inspektera den. (Vi kommer gå igenom vad grenar är och hur du använder dem i mer detalj i <a href="/book/sv/v2/ch00/ch03-git-branching">Git förgreningar</a>.)</p> </div> </div> <div class="sect3"> <h3 id="_fetching_and_pulling">Hämta och uppdatera från dina fjärrförvar</h3> <div class="paragraph"> <p>Som du just såg kan du hämta data från dina fjärrprojekt genom:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git fetch <fjärrnamn></code></pre> </div> </div> <div class="paragraph"> <p>Kommandot går ut till fjärrprojektet och hämtar hem all data från projektet som du ännu inte har. Efter att du gjort detta har du referenser till alla grenar på fjärrförvaret som du kan slå samman med dina ändringar eller inspektera när du helst vill.</p> </div> <div class="paragraph"> <p>Om du klonar ett förvar lägger kommandot automatiskt till det fjärrförvaret under namnet “origin”. Så <code>git fetch origin</code> hämtar allt nytt arbete som har blivit skickat till fjärrförvaret sedan du klonade (eller senast hämtade data) från det. Det är viktigt att att kommandot <code>git fetch</code> bara laddar ner data till ditt lokala förvar — det slår inte automatiskt ihop det med något av ditt arbete eller ändrar det du just nu jobbar med. Du måste manuellt införliva ändringarna i ditt arbete när du är redo.</p> </div> <div class="paragraph"> <p>Om du nuvarande gren är inställd på att spåra en fjärrgren (se nästa avsnitt och <a href="/book/sv/v2/ch00/ch03-git-branching">Git förgreningar</a> för mer information), kan du använda kommandot <code>git pull</code> för att hämta och därefter slå ihop ändringarna i din aktuella gren. Detta kan vara enklare eller mer bekvämt arbetssätt för dig; och normalt gör kommandot <code>git clone</code> att din lokala master-gren spårar motsvarande gren i fjärrförvaret (standardnamnet i fjärrförvaret behöver inte vara master) som du klonade från. Kommandot <code>git pull</code> hämtar generellt data från servern du ursprungligen klonade ifrån och försöker automatiskt att slå ihop ändringarna i den du just nu jobbar med.</p> </div> </div> <div class="sect3"> <h3 id="_pushing_remotes">Skicka till dina fjärrförvar</h3> <div class="paragraph"> <p>Näär du har ett projekt som du någon gång vill dela med dig av måste du skicka det uppströms. Kommandot för detta är simpelt: <code>git push <fjärrnamn> <gren></code>. Om du vill skicka upp din master-gren till din <code>origin</code> server (igen, kloning ställer normalt in båda dessa namn för dig automatiskt), då kan du köra detta för att skicka dina versioner upp till servern:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git push origin master</code></pre> </div> </div> <div class="paragraph"> <p>Kommandot fungerar bara om du klonat från en server dit du har skrivrättigheter och om ingen har skickat ändringar under tiden. Om du och någon annan klonar samtidigt och de skickar upp ändringar före dig kommer din sändning självklart att avvisas. Du måste då hämta deras arbete färst och inkorporera i dina innan du tillåts skicka upp din version. Se <a href="/book/sv/v2/ch00/ch03-git-branching">Git förgreningar</a> för mer detaljerad information om hur du skickar till fjärrservrar.</p> </div> </div> <div class="sect3"> <h3 id="_inspecting_remote">Inspektera ett fjärrförvar</h3> <div class="paragraph"> <p>Om du vill se mer information om en specifikt fjärrförvar, kan du använda kommandot <code>git remote show <remote></code>. Om du kör detta kommando med ett specifikt namn, som till exempel <code>origin</code> får du något i stil med:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote show origin * remote origin Fetch URL: https://github.com/schacon/ticgit Push URL: https://github.com/schacon/ticgit HEAD branch: master Remote branches: master tracked dev-branch tracked Local branch configured for 'git pull': master merges with remote master Local ref configured for 'git push': master pushes to master (up to date)</code></pre> </div> </div> <div class="paragraph"> <p>Det listar sökväg för fjärrförvaret samt information om spårade grenar. Kommandot säger även till dig att om du är på master-grenen och kör <code>git pull</code>, kommer den automatiskt slå samman ändringar med master-grenen på ditt fjärrförvar efter att den hämtat alla fjärreferenser. Den listar också alla fjärreferenser som den har hämtat.</p> </div> <div class="paragraph"> <p>Detta är ett simpelt exempel som du sannerligen kommer att stöta på. När du använder Git lite mer kommer du att få mer information från <code>git remote show</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote show origin * remote origin URL: https://github.com/my-org/complex-project Fetch URL: https://github.com/my-org/complex-project Push URL: https://github.com/my-org/complex-project HEAD branch: master Remote branches: master tracked dev-branch tracked markdown-strip tracked issue-43 new (next fetch will store in remotes/origin) issue-45 new (next fetch will store in remotes/origin) refs/remotes/origin/issue-11 stale (use 'git remote prune' to remove) Local branches configured for 'git pull': dev-branch merges with remote dev-branch master merges with remote master Local refs configured for 'git push': dev-branch pushes to dev-branch (up to date) markdown-strip pushes to markdown-strip (up to date) master pushes to master (up to date)</code></pre> </div> </div> <div class="paragraph"> <p>Kommadot visar också viklen gren som automatiskt skickas om du gör <code>git push</code> och står i en specifik gren. Den visar också vilka fjärrgrenar på servern som du inte har, och sådana du har men som blivit borttagna från servern, och flera lokala grenar som du automatiskt kan slå ihop ändringar med sin spårade gren då du kör <code>git pull</code>.</p> </div> </div> <div class="sect3"> <h3 id="_byta_namn_på_och_ta_bort_fjärrförvar">Byta namn på och ta bort fjärrförvar</h3> <div class="paragraph"> <p>Du kan köra <code>git remote rename</code> för att änbdra ett fjärförvars namn. Om du till exempel vill byta namn på <code>pb</code> till <code>paul</code> kan du göra det med <code>git remote rename</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote rename pb paul $ git remote origin paul</code></pre> </div> </div> <div class="paragraph"> <p>Det skall tilläggas att detta ändrar alla dina spårade grennamn också. Det du tidigare refererade till <code>pb/master</code> är nu <code>paul/master</code>.</p> </div> <div class="paragraph"> <p>Om du vill ta bort ett fjärrförvar av någon anledning — du har flyttat servern eller använder inte längre en specifik server, eller så kanske en tidigare medarbetare slutat — så kan du antingen använda <code>git remote remove</code> eller <code>git remote rm</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote remove paul $ git remote origin</code></pre> </div> </div> <div class="paragraph"> <p>När du väl tagit bort en referens på detta sättet kommer alla spårade grenar och konfigurationsinställningar som associerades med det fjärrförvaret också att tas bort.</p> </div> </div> <div id="nav"><a href="/book/sv/v2/Grunder-i-Git-Ångra-saker">prev</a> | <a href="/book/sv/v2/Grunder-i-Git-Taggning">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>