CINXE.COM
Git - Arbetsflöde med grenar
<!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 - Arbetsflöde med grenar</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-Branching-Workflows">English</a>. </p> <p> Full translation available in <table> <tr><td><a href="/book/az/v2/Git%e2%80%99d%c9%99-Branch-Branching-%c4%b0%c5%9f-Ax%c4%b1nlar%c4%b1">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%a1%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b8-%d0%b7%d0%b0-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%ba%d0%bb%d0%be%d0%bd%d0%be%d0%b2%d0%b5-%d0%ba%d0%be%d0%b4">български език</a>,</td></tr> <tr><td><a href="/book/de/v2/Git-Branching-Branching-Workflows">Deutsch</a>,</td></tr> <tr><td><a href="/book/es/v2/Ramificaciones-en-Git-Flujos-de-Trabajo-Ramificados">Español</a>,</td></tr> <tr><td><a href="/book/fr/v2/Les-branches-avec-Git-Travailler-avec-les-branches">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%96%e3%83%a9%e3%83%b3%e3%83%81%e3%81%a7%e3%81%ae%e4%bd%9c%e6%a5%ad%e3%81%ae%e6%b5%81%e3%82%8c">日本語</a>,</td></tr> <tr><td><a href="/book/ko/v2/Git-%eb%b8%8c%eb%9e%9c%ec%b9%98-%eb%b8%8c%eb%9e%9c%ec%b9%98-%ec%9b%8c%ed%81%ac%ed%94%8c%eb%a1%9c">한국어</a>,</td></tr> <tr><td><a href="/book/nl/v2/Branchen-in-Git-Branch-workflows">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%a0%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b2%d0%b5%d1%82%d0%ba%d0%b0%d0%bc%d0%b8">Русский</a>,</td></tr> <tr><td><a href="/book/sl/v2/Veje-Git-Poteki-dela-z-vejami">Slovenščina</a>,</td></tr> <tr><td><a href="/book/tl/v2/Pag-branch-ng-Git-Mga-Daloy-ng-Trabaho-sa-Pag-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%9f%d1%80%d0%be%d1%86%d0%b5%d1%81%d0%b8-%d1%80%d0%be%d0%b1%d0%be%d1%82%d0%b8-%d0%b7-%d0%b3%d1%96%d0%bb%d0%ba%d0%b0%d0%bc%d0%b8">Українська</a></td></tr> <tr><td><a href="/book/zh/v2/Git-%e5%88%86%e6%94%af-%e5%88%86%e6%94%af%e5%bc%80%e5%8f%91%e5%b7%a5%e4%bd%9c%e6%b5%81">简体中文</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-Postupy-p%c5%99i-pr%c3%a1ci-s-v%c4%9btvemi">Č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%a0%d0%b0%d0%b1%d0%be%d1%82%d0%bd%d0%b8-%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d0%b8">Македонски</a>,</td></tr> <tr><td><a href="/book/pl/v2/Ga%c5%82%c4%99zie-Gita-Sposoby-pracy-z-ga%c5%82%c4%99ziami">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%9f%d1%80%d0%be%d1%86%d0%b5%d1%81%d0%b8-%d1%80%d0%b0%d0%b4%d0%b0-%d1%81%d0%b0-%d0%b3%d1%80%d0%b0%d0%bd%d0%b0%d1%9a%d0%b5%d0%bc">Српски</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%98%d1%88-%d0%b6%d0%b0%d1%80%d0%b0%d1%91%d0%bd%d0%bb%d0%b0%d1%80%d0%b8%d0%bd%d0%b8-%d1%82%d0%b0%d1%80%d0%bc%d0%be%d2%9b%d0%bb%d0%b0%d1%88">Ўзбекча</a>,</td></tr> <tr><td><a href="/book/zh-tw/v2/%e4%bd%bf%e7%94%a8-Git-%e5%88%86%e6%94%af-%e5%88%86%e6%94%af%e5%b7%a5%e4%bd%9c%e6%b5%81%e7%a8%8b">繁體中文</a>,</td></tr> </table> </p> <p> Translations started for <table> <tr><td><a href="/book/be/v2/Git-Branching-Branching-Workflows">Беларуская</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%b1%d9%88%d9%86%d8%af-%da%a9%d8%a7%d8%b1%db%8c-%d8%b4%d8%a7%d8%ae%d9%87%e2%80%8c%d8%b3%d8%a7%d8%b2%db%8c" dir="rtl">فارسی</a>,</td></tr> <tr><td><a href="/book/id/v2/Git-Branching-Branching-Workflows">Indonesian</a>,</td></tr> <tr><td><a href="/book/it/v2/Git-Branching-Branching-Workflows">Italiano</a>,</td></tr> <tr><td><a href="/book/ms/v2/Git-Branching-Branching-Workflows">Bahasa Melayu</a>,</td></tr> <tr><td><a href="/book/pt-br/v2/Branches-no-Git-Fluxo-de-Branches">Português (Brasil)</a>,</td></tr> <tr><td><a href="/book/pt-pt/v2/Ramifica%c3%a7%c3%a3o-do-Git-Branching-Workflows">Português (Portugal)</a>,</td></tr> <tr><td><a href="/book/sv/v2/Git-f%c3%b6rgreningar-Arbetsfl%c3%b6de-med-grenar">Svenska</a>,</td></tr> <tr><td><a href="/book/tr/v2/Git-Dallar%c4%b1-%c4%b0%c5%9f-Ak%c4%b1%c5%9f%c4%b1-Dalland%c4%b1rmas%c4%b1">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">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" class="active">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>3.4 Git förgreningar - Arbetsflöde med grenar</h1> <div> <h2 id="_arbetsflöde_med_grenar">Arbetsflöde med grenar</h2> <div class="paragraph"> <p>Nu när du kan grunderna i att skapa och slå samman grenar, vad kan eller bör du göra med dem? I detta avsnitt kommer vi att gå igenom några vanliga arbetsflöden som dessa lättviktiga grenar möjliggör så kan du avgöra om du vill inkorporera dem i din egen utvecklingscykel.</p> </div> <div class="sect3"> <h3 id="_långlivade_grenar">Långlivade grenar</h3> <div class="paragraph"> <p> Eftersom Git använder en enkel trevägssammanslagning är det generellt mycket enkelt att slå ihop en gren in i en annan flera gånger över en längre period. Detta betyder att du kan ha flera grenar som alltid finns och som du använder för olika steg i utvecklingen. Du kan regelbundet slå samman ändringar från några av dem in i andra.</p> </div> <div class="paragraph"> <p>Många Gitutvecklare har ett arbetsflöde som omfamnar detta tillvägagångssätt, som t.ex. att bara ha helt stabil kod i sin <code>master</code>-gren — möjligtvis bara kod som har eller skall frisläppas. De har en annan parallell gren benämnd <code>develop</code> eller <code>next</code> som de jobbar från och använder för att testa stabiliteten — den är inte nödvändigtvis alltid stabil, men när när den når ett stabilt tillstånd kan den slås ihop med <code>master</code>. Den används för att dra in ämnesgrenar (kortlivade grenar, som din förra <code>iss53</code>-gren) när de är färdigställda, för att säkerställa att de klarar alla tester och inte introducerar buggar.</p> </div> <div class="paragraph"> <p>I verkligheten pratar vi om pekare som förflyttar sig upp igenom raden av versioner som du skapar. De stabila grenarna är längre ner i din versionshistorik och grenerna som innehåller det absolut nyaste är längre upp.</p> </div> <div class="imageblock"> <div class="content"> <img src="/book/sv/v2/images/lr-branches-1.png" alt="A linear view of progressive-stability branching."> </div> <div class="title">Figur 26. En linjär vy över progressivt stabila grenar.</div> </div> <div class="paragraph"> <p>Det är generellt enklare att tänka på dem som silos, där en uppsättning versioner promoveras till en mer stabil silo då de är fullt testade.</p> </div> <div id="lrbranch_b" class="imageblock"> <div class="content"> <img src="/book/sv/v2/images/lr-branches-2.png" alt="A ``silo'' view of progressive-stability branching."> </div> <div class="title">Figur 27. En “silo”-vy av progressivt stabila grenar</div> </div> <div class="paragraph"> <p>Du kan fortsätta med detta för flera nivåer av stabilitet. Några större projekt har även en gren benämnd <code>proposed</code> eller <code>pu</code> (proposed uppdates, sv. föreslagna uppdateringar) som har integrerat grenar som kan vara färdiga att ingå i grenen <code>next</code> eller <code>master</code>. Iden är att dina genar håller olika nivåer av stabilitet. När de når en mer stabil nivå, slås de samman till grenen ovanför dem. Återigen, att ha flera långlivade grenar är inte nödvändigt, men det är ofta till hjälp när du har att göra med väldigt stora eller komplexa projekt.</p> </div> </div> <div class="sect3"> <h3 id="_topic_branch">Ämnesgrenar</h3> <div class="paragraph"> <p> Ämnesgrenar är användbara i projekt oavsett storlek. En ämnesgren är en kortlivad gren som du skapar och använder för en enskild specifik funktion eller sammanhängande arbete. Detta är något som du troligen aldrig gjort med något versionshanteringssystem innan eftersom det generellt är dyrt att skapa och slå samman grenar. Men i Git är det vanligt att skapa, arbeta på, slå samman och ta bort grenar flera gånger dagligen.</p> </div> <div class="paragraph"> <p>Du såg detta i förra avsnittet med grenarna <code>iss53</code> och <code>hotfix</code> som du skapade. Du gjorde några få versioner på dem och tog bort dem direkt efter att de slagits ihop med din huvudgren. Denna teknik tillåter att du byter kontext snabbt och fullständigt — eftersom ditt arbete är separerat i silos där alla ändringar i den grenen har att göra med just den specifika funktionen, är det lättare att se vad som har hänt vid exempelvis kodgranskning. Du kan behålla ändringarna där i minuter, dagar, eller månader, och slå samman dem när de är klara, oaktat ordningen i vilken de skapades eller arbetades på.</p> </div> <div class="paragraph"> <p>Anta exemplet att arbeta lite (på <code>master</code>), grena ut för att lösa ett problem (<code>iss91</code>), jobba lite på den och grena ut igen och försöka lösa problemet på ett annat sätt (<code>iss91v2</code>). Du går sedan tillbaka till <code>master</code> och jobbar där lite och sedan grenar du ut för att göra lite jobb som du inte är säker på är en bra idé (grenen <code>dumbidea</code>). Din versionshistorik kommer se ut något liknande detta:</p> </div> <div class="imageblock"> <div class="content"> <img src="/book/sv/v2/images/topic-branches-1.png" alt="Multiple topic branches."> </div> <div class="title">Figur 28. Multipla ämnesgrenar</div> </div> <div class="paragraph"> <p>Anta nu att du vill ha den andra lösningen för problemet (<code>iss91v2</code>) och att du visat grenen <code>dumbidea</code> för dina kollegor och det föreföll sig att den var genial. Du kan då kasta den ordinarie grenen <code>iss91</code> (och förlora versionerna <code>C5</code> och <code>C6</code>) samt slå samman de andra två versionerna. Din versionshistorik ser då ut såhär:</p> </div> <div class="imageblock"> <div class="content"> <img src="/book/sv/v2/images/topic-branches-2.png" alt="History after merging `dumbidea` and `iss91v2`."> </div> <div class="title">Figur 29. Historik efter sammanslagning av <code>dumbidea</code> och <code>iss91v2</code> </div> </div> <div class="paragraph"> <p>Vi kommer gå in i mer detalj gällande olika möjliga arbetsflödena för dit Gitprojekt i <a href="/book/sv/v2/ch00/ch05-distributed-git">Distribuerade Git</a>, innan du bestämmer dig för vilken förgreningsmodell som ditt nästa projekt skall ha, så glöm inte det kapitlet.</p> </div> <div class="paragraph"> <p>Det är viktigt att komma ihåg att när du gör allt detta, att grenarna är lokala. När du grenar ut och slår ihop grenar görs allt i dit lokala förvar — ingen kommunikation sker med servern.</p> </div> </div> <div id="nav"><a href="/book/sv/v2/Git-förgreningar-Hantera-grenar">prev</a> | <a href="/book/sv/v2/Git-förgreningar-Fjärrgrenar">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>