CINXE.COM
Git - git-merge Documentation
<!DOCTYPE html> <html lang="pt_BR"> <head> <script type="text/javascript"> const currentTheme = localStorage.getItem("theme") if (currentTheme) { const prefersDarkScheme = window.matchMedia("(prefers-color-scheme: dark)").matches if ((prefersDarkScheme && currentTheme === "light") || (!prefersDarkScheme && currentTheme === "dark")) { document.documentElement.dataset.theme = currentTheme } } </script> <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 - git-merge Documentation</title> <link href="/favicon.ico" rel='shortcut icon' type='image/x-icon'> <link rel="stylesheet" href="/application.min.css"> </head> <body id="documentation"> <div class="inner"> <header> <a id="logo" href="/"><img src="/images/logo@2x.png" width="110" height="46" alt="Git" class="no-filter" /></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> <div id="search-container"> <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> </div> <img src="/images/dark-mode.svg" id="dark-mode-button" /> </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" class="active">Reference</a> </li> <li> <a href="/book">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> </nav> </aside> <div id="content"> <div id='reference-version'> <a class="dropdown-trigger" id="reference-languages-trigger" data-panel-id="l10n-versions-dropdown" href="#"> Português (Brasil) ▾</a> <div class='dropdown-panel right' id='l10n-versions-dropdown'> <header>Localized versions of <strong>git-merge</strong> manual</header> <ol class='reference-previous-versions'> <li> <a href="/docs/git-merge"><span class="version">English</span> </a> </li> <li> <a href="/docs/git-merge/fr"><span class="version">Français</span> </a> </li> <li> <a href="/docs/git-merge/pt_BR"><span class="version">Português (Brasil)</span> </a> </li> <li> <a href="/docs/git-merge/zh_HANS-CN"><span class="version">简体中文</span> </a> </li> </ol> <footer> Want to read in your language or fix typos?<br/> <a href="https://github.com/jnavila/git-manpages-l10n">You can help translate this page</a>. </footer> </div> <a class="dropdown-trigger" id="reference-topics-trigger" data-panel-id="topics-dropdown" href="#">Topics ▾</a> <div class='dropdown-panel right' id='topics-dropdown'> <div class='three-column'> <div class='column-left'> <h3 class='setup'>Setup and Config</h3> <ul class='unstyled'> <li> <a href="/docs/git/pt_BR"> git </a> </li> <li> <a href="/docs/git-config/pt_BR"> config </a> </li> <li> <a href="/docs/git-help/pt_BR"> help </a> </li> <li> <a href="/docs/git-bugreport/pt_BR"> bugreport </a> </li> <li> <a href="/doc/credential-helpers"> Credential helpers </a> </li> </ul> <h3 class='projects'>Getting and Creating Projects</h3> <ul class='unstyled'> <li> <a href="/docs/git-init/pt_BR"> init </a> </li> <li> <a href="/docs/git-clone/pt_BR"> clone </a> </li> </ul> <h3 class='snapshotting'>Basic Snapshotting</h3> <ul class='unstyled'> <li> <a href="/docs/git-add/pt_BR"> add </a> </li> <li> <a href="/docs/git-status/pt_BR"> status </a> </li> <li> <a href="/docs/git-diff/pt_BR"> diff </a> </li> <li> <a href="/docs/git-commit/pt_BR"> commit </a> </li> <li> <a href="/docs/git-notes/pt_BR"> notes </a> </li> <li> <a href="/docs/git-restore/pt_BR"> restore </a> </li> <li> <a href="/docs/git-reset/pt_BR"> reset </a> </li> <li> <a href="/docs/git-rm/pt_BR"> rm </a> </li> <li> <a href="/docs/git-mv/pt_BR"> mv </a> </li> </ul> <h3 class='branching'>Branching and Merging</h3> <ul class='unstyled'> <li> <a href="/docs/git-branch/pt_BR"> branch </a> </li> <li> <a href="/docs/git-checkout/pt_BR"> checkout </a> </li> <li> <a href="/docs/git-switch/pt_BR"> switch </a> </li> <li> <a href="/docs/git-merge/pt_BR"> merge </a> </li> <li> <a href="/docs/git-mergetool/pt_BR"> mergetool </a> </li> <li> <a href="/docs/git-log/pt_BR"> log </a> </li> <li> <a href="/docs/git-stash/pt_BR"> stash </a> </li> <li> <a href="/docs/git-tag/pt_BR"> tag </a> </li> <li> <a href="/docs/git-worktree/pt_BR"> worktree </a> </li> </ul> <h3 class='sharing'>Sharing and Updating Projects</h3> <ul class='unstyled'> <li> <a href="/docs/git-fetch/pt_BR"> fetch </a> </li> <li> <a href="/docs/git-pull/pt_BR"> pull </a> </li> <li> <a href="/docs/git-push/pt_BR"> push </a> </li> <li> <a href="/docs/git-remote/pt_BR"> remote </a> </li> <li> <a href="/docs/git-submodule/pt_BR"> submodule </a> </li> </ul> </div> <div class='column-middle'> <h3 class='inspection'>Inspection and Comparison</h3> <ul class='unstyled'> <li> <a href="/docs/git-show/pt_BR"> show </a> </li> <li> <a href="/docs/git-log/pt_BR"> log </a> </li> <li> <a href="/docs/git-diff/pt_BR"> diff </a> </li> <li> <a href="/docs/git-difftool/pt_BR"> difftool </a> </li> <li> <a href="/docs/git-range-diff/pt_BR"> range-diff </a> </li> <li> <a href="/docs/git-shortlog/pt_BR"> shortlog </a> </li> <li> <a href="/docs/git-describe/pt_BR"> describe </a> </li> </ul> <h3 class='patching'>Patching</h3> <ul class='unstyled'> <li> <a href="/docs/git-apply/pt_BR"> apply </a> </li> <li> <a href="/docs/git-cherry-pick/pt_BR"> cherry-pick </a> </li> <li> <a href="/docs/git-diff/pt_BR"> diff </a> </li> <li> <a href="/docs/git-rebase/pt_BR"> rebase </a> </li> <li> <a href="/docs/git-revert/pt_BR"> revert </a> </li> </ul> <h3 class='debugging'>Debugging</h3> <ul class='unstyled'> <li> <a href="/docs/git-bisect/pt_BR"> bisect </a> </li> <li> <a href="/docs/git-blame/pt_BR"> blame </a> </li> <li> <a href="/docs/git-grep/pt_BR"> grep </a> </li> </ul> <h3 class='email'>Email</h3> <ul class='unstyled'> <li> <a href="/docs/git-am/pt_BR"> am </a> </li> <li> <a href="/docs/git-apply/pt_BR"> apply </a> </li> <li> <a href="/docs/git-format-patch/pt_BR"> format-patch </a> </li> <li> <a href="/docs/git-send-email/pt_BR"> send-email </a> </li> <li> <a href="/docs/git-request-pull/pt_BR"> request-pull </a> </li> </ul> <h3 class='external'>External Systems</h3> <ul class='unstyled'> <li> <a href="/docs/git-svn/pt_BR"> svn </a> </li> <li> <a href="/docs/git-fast-import/pt_BR"> fast-import </a> </li> </ul> <h3 class='server-admin'>Server Admin</h3> <ul class='unstyled'> <li> <a href="/docs/git-daemon/pt_BR"> daemon </a> </li> <li> <a href="/docs/git-update-server-info/pt_BR"> update-server-info </a> </li> </ul> </div> <div class='column-right'> <h3 class='guides'>Guides</h3> <ul class='unstyled'> <li> <a href="/docs/gitattributes"> gitattributes </a> </li> <li> <a href="/docs/gitcli"> Command-line interface conventions </a> </li> <li> <a href="/docs/giteveryday"> Everyday Git </a> </li> <li> <a href="/docs/gitfaq"> Frequently Asked Questions (FAQ) </a> </li> <li> <a href="/docs/gitglossary/pt_BR"> Glossary </a> </li> <li> <a href="/docs/githooks"> Hooks </a> </li> <li> <a href="/docs/gitignore/pt_BR"> gitignore </a> </li> <li> <a href="/docs/gitmodules"> gitmodules </a> </li> <li> <a href="/docs/gitrevisions"> Revisions </a> </li> <li> <a href="/docs/gitsubmodules"> Submodules </a> </li> <li> <a href="/docs/gittutorial"> Tutorial </a> </li> <li> <a href="/docs/gitworkflows"> Workflows </a> </li> <li> <a href="/docs/git#_guides"> All guides... </a> </li> </ul> <h3 class='admin'>Administration</h3> <ul class='unstyled'> <li> <a href="/docs/git-clean/pt_BR"> clean </a> </li> <li> <a href="/docs/git-gc/pt_BR"> gc </a> </li> <li> <a href="/docs/git-fsck/pt_BR"> fsck </a> </li> <li> <a href="/docs/git-reflog/pt_BR"> reflog </a> </li> <li> <a href="/docs/git-filter-branch/pt_BR"> filter-branch </a> </li> <li> <a href="/docs/git-instaweb/pt_BR"> instaweb </a> </li> <li> <a href="/docs/git-archive/pt_BR"> archive </a> </li> <li> <a href="/docs/git-bundle/pt_BR"> bundle </a> </li> </ul> <h3 class='plumbing'>Plumbing Commands</h3> <ul class='unstyled'> <li> <a href="/docs/git-cat-file/pt_BR"> cat-file </a> </li> <li> <a href="/docs/git-check-ignore/pt_BR"> check-ignore </a> </li> <li> <a href="/docs/git-checkout-index/pt_BR"> checkout-index </a> </li> <li> <a href="/docs/git-commit-tree/pt_BR"> commit-tree </a> </li> <li> <a href="/docs/git-count-objects/pt_BR"> count-objects </a> </li> <li> <a href="/docs/git-diff-index/pt_BR"> diff-index </a> </li> <li> <a href="/docs/git-for-each-ref/pt_BR"> for-each-ref </a> </li> <li> <a href="/docs/git-hash-object/pt_BR"> hash-object </a> </li> <li> <a href="/docs/git-ls-files/pt_BR"> ls-files </a> </li> <li> <a href="/docs/git-ls-tree/pt_BR"> ls-tree </a> </li> <li> <a href="/docs/git-merge-base/pt_BR"> merge-base </a> </li> <li> <a href="/docs/git-read-tree/pt_BR"> read-tree </a> </li> <li> <a href="/docs/git-rev-list/pt_BR"> rev-list </a> </li> <li> <a href="/docs/git-rev-parse/pt_BR"> rev-parse </a> </li> <li> <a href="/docs/git-show-ref/pt_BR"> show-ref </a> </li> <li> <a href="/docs/git-symbolic-ref/pt_BR"> symbolic-ref </a> </li> <li> <a href="/docs/git-update-index/pt_BR"> update-index </a> </li> <li> <a href="/docs/git-update-ref/pt_BR"> update-ref </a> </li> <li> <a href="/docs/git-verify-pack/pt_BR"> verify-pack </a> </li> <li> <a href="/docs/git-write-tree/pt_BR"> write-tree </a> </li> </ul> </div> </div> </div> <a class="dropdown-trigger" id="reference-versions-trigger" data-panel-id="previous-versions-dropdown" href="#"> Latest version ▾ </a> <span class="light d-flex">git-merge last updated in 2.49.0</span> <div class='dropdown-panel left' id='previous-versions-dropdown'> <header>Changes in the <strong>git-merge</strong> manual</header> <ol class='reference-previous-versions'> <li> <a href="/docs/git-merge/2.49.0"><span class="version">2.49.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2025-03-14</em> </a> </li> <li class="no-change"><span>2.48.1 no changes</span></li> <li class="no-change"><span>2.48.0 no changes</span></li> <li class="no-change"><span>2.47.1 → 2.47.2 no changes</span></li> <li> <a href="/docs/git-merge/2.47.0"><span class="version">2.47.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2024-10-06</em> </a> </li> <li class="no-change"><span>2.43.2 → 2.46.3 no changes</span></li> <li> <a href="/docs/git-merge/2.43.1"><span class="version">2.43.1</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2024-02-09</em> </a> </li> <li> <a href="/docs/git-merge/2.43.0"><span class="version">2.43.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2023-11-20</em> </a> </li> <li class="no-change"><span>2.42.1 → 2.42.4 no changes</span></li> <li> <a href="/docs/git-merge/2.42.0"><span class="version">2.42.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2023-08-21</em> </a> </li> <li class="no-change"><span>2.39.4 → 2.41.3 no changes</span></li> <li> <a href="/docs/git-merge/2.39.3"><span class="version">2.39.3</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2023-04-17</em> </a> </li> <li class="no-change"><span>2.38.1 → 2.39.2 no changes</span></li> <li> <a href="/docs/git-merge/2.38.0"><span class="version">2.38.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2022-10-02</em> </a> </li> <li class="no-change"><span>2.35.1 → 2.37.7 no changes</span></li> <li> <a href="/docs/git-merge/2.35.0"><span class="version">2.35.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2022-01-24</em> </a> </li> <li class="no-change"><span>2.34.1 → 2.34.8 no changes</span></li> <li> <a href="/docs/git-merge/2.34.0"><span class="version">2.34.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2021-11-15</em> </a> </li> <li class="no-change"><span>2.33.2 → 2.33.8 no changes</span></li> <li> <a href="/docs/git-merge/2.33.1"><span class="version">2.33.1</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2021-10-12</em> </a> </li> <li> <a href="/docs/git-merge/2.33.0"><span class="version">2.33.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2021-08-16</em> </a> </li> <li class="no-change"><span>2.30.1 → 2.32.7 no changes</span></li> <li> <a href="/docs/git-merge/2.30.0"><span class="version">2.30.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2020-12-27</em> </a> </li> <li class="no-change"><span>2.29.1 → 2.29.3 no changes</span></li> <li> <a href="/docs/git-merge/2.29.0"><span class="version">2.29.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2020-10-19</em> </a> </li> <li class="no-change"><span>2.27.1 → 2.28.1 no changes</span></li> <li> <a href="/docs/git-merge/2.27.0"><span class="version">2.27.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2020-06-01</em> </a> </li> <li class="no-change"><span>2.25.1 → 2.26.3 no changes</span></li> <li> <a href="/docs/git-merge/2.25.0"><span class="version">2.25.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2020-01-13</em> </a> </li> <li class="no-change"><span>2.24.1 → 2.24.4 no changes</span></li> <li> <a href="/docs/git-merge/2.24.0"><span class="version">2.24.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2019-11-04</em> </a> </li> <li class="no-change"><span>2.23.1 → 2.23.4 no changes</span></li> <li> <a href="/docs/git-merge/2.23.0"><span class="version">2.23.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2019-08-16</em> </a> </li> <li class="no-change"><span>2.22.2 → 2.22.5 no changes</span></li> <li> <a href="/docs/git-merge/2.22.1"><span class="version">2.22.1</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2019-08-11</em> </a> </li> <li> <a href="/docs/git-merge/2.22.0"><span class="version">2.22.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2019-06-07</em> </a> </li> <li class="no-change"><span>2.20.1 → 2.21.4 no changes</span></li> <li> <a href="/docs/git-merge/2.20.0"><span class="version">2.20.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2018-12-09</em> </a> </li> <li class="no-change"><span>2.19.1 → 2.19.6 no changes</span></li> <li> <a href="/docs/git-merge/2.19.0"><span class="version">2.19.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2018-09-10</em> </a> </li> <li class="no-change"><span>2.18.1 → 2.18.5 no changes</span></li> <li> <a href="/docs/git-merge/2.18.0"><span class="version">2.18.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2018-06-21</em> </a> </li> <li class="no-change"><span>2.17.1 → 2.17.6 no changes</span></li> <li> <a href="/docs/git-merge/2.17.0"><span class="version">2.17.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2018-04-02</em> </a> </li> <li> <a href="/docs/git-merge/2.16.6"><span class="version">2.16.6</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2019-12-06</em> </a> </li> <li> <a href="/docs/git-merge/2.15.4"><span class="version">2.15.4</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2019-12-06</em> </a> </li> <li> <a href="/docs/git-merge/2.14.6"><span class="version">2.14.6</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2019-12-06</em> </a> </li> <li> <a href="/docs/git-merge/2.13.7"><span class="version">2.13.7</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2018-05-22</em> </a> </li> <li> <a href="/docs/git-merge/2.12.5"><span class="version">2.12.5</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2017-09-22</em> </a> </li> <li class="no-change"><span>2.10.5 → 2.11.4 no changes</span></li> <li> <a href="/docs/git-merge/2.9.5"><span class="version">2.9.5</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2017-07-30</em> </a> </li> <li> <a href="/docs/git-merge/2.8.6"><span class="version">2.8.6</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2017-07-30</em> </a> </li> <li class="no-change"><span>2.7.6 no changes</span></li> <li> <a href="/docs/git-merge/2.6.7"><span class="version">2.6.7</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2017-05-05</em> </a> </li> <li> <a href="/docs/git-merge/2.5.6"><span class="version">2.5.6</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2017-05-05</em> </a> </li> <li> <a href="/docs/git-merge/2.4.12"><span class="version">2.4.12</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2017-05-05</em> </a> </li> <li class="no-change"><span>2.3.10 no changes</span></li> <li> <a href="/docs/git-merge/2.2.3"><span class="version">2.2.3</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2015-09-04</em> </a> </li> <li> <a href="/docs/git-merge/2.1.4"><span class="version">2.1.4</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2014-12-17</em> </a> </li> <li> <a href="/docs/git-merge/2.0.5"><span class="version">2.0.5</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2014-12-17</em> </a> </li> <li> </li> </ol> <footer> <p>Check your version of git by running</p> <code class="command">git --version</code> </footer> </div> </div> <div id="main" data-pagefind-filter="category:reference" data-pagefind-meta="category:Reference" data-pagefind-weight="0.05" data-pagefind-body> <div class="sect1"> <h2 id="_nome"><a class="anchor" href="#_nome"></a>NOME</h2> <div class="sectionbody"> <div class="paragraph"> <p>git-merge - Une dois ou mais históricos de desenvolvimento</p> </div> </div> </div> <div class="sect1"> <h2 id="_resumo"><a class="anchor" href="#_resumo"></a>RESUMO</h2> <div class="sectionbody"> <div class="verseblock"> <pre class="content"><em>git merge</em> [-n] [--stat] [--no-commit] [--squash] [--[no-]edit] [--no-verify] [-s <estratégia>] [-X <opção-da-estratégia>] [-S[<keyid>]] [--[no-]allow-unrelated-histories] [--[no-]rerere-autoupdate] [-m <msg>] [-F <arquivo>] [<commit>…​] [--into-name <ramo>] [<commit>…​] <em>git merge</em> (--continue | --abort | --quit)</pre> </div> </div> </div> <div class="sect1"> <h2 id="_descrição"><a class="anchor" href="#_descrição"></a>DESCRIÇÃO</h2> <div class="sectionbody"> <div class="paragraph"> <p>Incorpora as alterações mencionadas dos commits (desde o momento onde seus históricos divergiram do ramo atual) no ramo atual. Esse comando é usado pelo <code>git pull</code> para incorporar alterações de outro repositório e pode ser usado manualmente para mesclar alterações de um ramo em outro.</p> </div> <div class="paragraph"> <p>Suponha que exista o seguinte histórico e o ramo atual seja <code>master</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre> A---B---C topic / D---E---F---G master</pre> </div> </div> <div class="paragraph"> <p>Em seguida, o comando <code>git merge topic</code> reproduzirá as alterações feitas na ramificação <code>topic</code> desde o momento que houve divergência do <code>master</code> (ou seja, <code>E</code>) até o commit atual (<code>C</code>) no topo do <code>master</code> e registrará o resultado num novo commit, juntamente com os nomes dos dois commits principais e uma mensagem de registro log do usuário descrevendo as alterações. Antes da operação, <code>ORIG_HEAD</code> é definido como a ponta do ramo atual (<code>C</code>).</p> </div> <div class="listingblock"> <div class="content"> <pre> A---B---C topic / \ D---E---F---G---H master</pre> </div> </div> <div class="paragraph"> <p>Uma mesclagem será interrompida se houver um conflito que não possa ser resolvido automaticamente ou se a opção <code>--no-commit</code> tiver sido fornecido ao iniciar a mesclagem. Nesse ponto, você pode executar o comando <code>git merge --abort</code> ou <code>git merge --continue</code>.</p> </div> <div class="paragraph"> <p>O comando <code>git merge --abort</code> interromperá o processo de mesclagem e tentará reconstruir o estado anterior à mesclagem. No entanto, se houver alterações não confirmadas quando a mesclagem for iniciada (e especialmente se essas alterações forem modificadas depois que a mesclagem for iniciada), o comando <code>git merge --abort</code> não conseguirá, em alguns casos, reconstruir as alterações originais (anteriores à mesclagem). Portanto:</p> </div> <div class="paragraph"> <p><strong>Aviso</strong>: É desencorajado executar o comando <code>git merge</code> com alterações não-triviais dos commits que não foram feitos: isso pode deixá-lo numa condição difícil de sair em casos de conflito.</p> </div> </div> </div> <div class="sect1"> <h2 id="_opções"><a class="anchor" href="#_opções"></a>OPÇÕES</h2> <div class="sectionbody"> <div class="dlist"> <dl> <dt class="hdlist1" id="git-merge---commit"> <a class="anchor" href="#git-merge---commit"></a>--commit </dt> <dt class="hdlist1" id="git-merge---no-commit"> <a class="anchor" href="#git-merge---no-commit"></a>--no-commit </dt> <dd> <p>Execute a mesclagem e faça o commit com o resultado. Esta opção pode ser usada para substituir a opção <code>--no-commit</code>.</p> <div class="paragraph"> <p>Com a opção <code>--no-commit</code>, executa a mesclagem e para imediatamente antes de criar a mesclagem de um commit, para dar ao usuário a chance de inspecionar e ajustar ainda mais o resultado da mesclagem antes de fazer o commit.</p> </div> <div class="paragraph"> <p>Observe que as atualizações de avanço rápido não criam a mesclagem de um commit e, portanto, não há como interromper estas mesclagens com a opção <code>--no-commit</code>. Portanto, se você quiser garantir que o seu ramo não seja alterado ou atualizado pelo comando de mesclagem, use a opção <code>--no-ff</code> com <code>--no-commit</code>.</p> </div> </dd> <dt class="hdlist1" id="git-merge---edit"> <a class="anchor" href="#git-merge---edit"></a>--edit </dt> <dt class="hdlist1" id="git-merge--e"> <a class="anchor" href="#git-merge--e"></a>-e </dt> <dt class="hdlist1" id="git-merge---no-edit"> <a class="anchor" href="#git-merge---no-edit"></a>--no-edit </dt> <dd> <p> Chame um editor antes de fazer a mesclagem mecânica de um commit bem sucedido para editar ainda mais a mensagem da mesclagem que foi gerada automaticamente, para que o usuário possa explicar e justificar a mesclagem. A opção <code>--no-edit</code> pode ser utilizada para aceitar a mensagem que foi gerada automaticamente (em geral isso é desencorajado). A opção <code>--edit</code> (ou <code>-e</code>) ainda é útil caso esteja enviando uma mensagem de rascunho com a opção <code>-m</code> na linha de comando e queira editá-la no editor.</p> <div class="paragraph"> <p>Os scripts mais antigos podem depender do comportamento histórico de não permitir que o usuário edite a mensagem do registro log da mesclagem. Eles verão um editor aberto quando executar o <code>git merge</code>. Para facilitar o ajuste destes scripts para o comportamento que foi atualizado, a variável de ambiente <code>GIT_MERGE_AUTOEDIT</code> pode ser definido como <code>no</code> no início deles.</p> </div> </dd> <dt class="hdlist1" id="git-merge---cleanupltmodogt"> <a class="anchor" href="#git-merge---cleanupltmodogt"></a>--cleanup=<modo> </dt> <dd> <p>Esta opção determina como a mensagem da mesclagem será limpa antes da confirmação. Para mais detalhes consulte <a href='/docs/git-commit/pt_BR'>git-commit[1]</a>. Além disso, caso o valor de <code>scissors</code> seja dado ao <em><mode></em> , o <code>scissors</code> (tesouras) será anexada ao <code>MERGE_MSG</code> antes de ser repassada para o mecanismo de commit caso exista mesclagens conflitantes.</p> </dd> <dt class="hdlist1" id="git-merge---ff"> <a class="anchor" href="#git-merge---ff"></a>--ff </dt> <dt class="hdlist1" id="git-merge---no-ff"> <a class="anchor" href="#git-merge---no-ff"></a>--no-ff </dt> <dt class="hdlist1" id="git-merge---ff-only"> <a class="anchor" href="#git-merge---ff-only"></a>--ff-only </dt> <dd> <p>Especifica como uma mesclagem é tratada quando o histórico mesclado já for um descendente do histórico atual. A opção <code>--ff</code> é o padrão, a menos que uma etiqueta anotada esteja mesclanda (e possivelmente assinada) e que não esteja armazenada em seu lugar natural na hierarquia <code>refs/tags/</code>, caso onde se assume que a opção <code>--no-ff</code> tenha sido usada.</p> <div class="paragraph"> <p>Com a opção <code>--ff</code>, quando for possível, resolve a mesclagem como um avanço rápido (atualize apenas o ponteiro do ramo para corresponder ao ramo mesclado; e não cria a mesclagem de um commit). Quando não for possível (quando o histórico mesclado não for um descendente do histórico atual), cria a mesclagem de um commit.</p> </div> <div class="paragraph"> <p>Com <code>--no-ff</code>, crie um commit da mesclagem em todos os casos, mesmo quando a mesclagem puder ser resolvida como um avanço rápido.</p> </div> <div class="paragraph"> <p>Com a opção <code>--ff-only</code>, resolva a mesclagem como um avanço rápido quando for possível. Quando não for possível, recuse a mesclagem e encerre com uma condição de encerramento diferente de zero.</p> </div> </dd> <dt class="hdlist1" id="git-merge--Sltkeyidgt"> <a class="anchor" href="#git-merge--Sltkeyidgt"></a>-S[<keyid>] </dt> <dt class="hdlist1" id="git-merge---gpg-signltkeyidgt"> <a class="anchor" href="#git-merge---gpg-signltkeyidgt"></a>--gpg-sign[=<keyid>] </dt> <dt class="hdlist1" id="git-merge---no-gpg-sign"> <a class="anchor" href="#git-merge---no-gpg-sign"></a>--no-gpg-sign </dt> <dd> <p>Assine a mesclagem resultante do commit com o GPG. O argumento <code>keyid</code> é opcional e a predefinição retorna para a identidade de quem fez o commit; se utilizado, deve estar anexado a opção sem espaço. A opção <code>--no-gpg-sign</code> é útil para revogar a variável de configuração <code>commit.gpgSign</code> e a anterior <code>--gpg-sign</code>.</p> </dd> <dt class="hdlist1" id="git-merge---logltngt"> <a class="anchor" href="#git-merge---logltngt"></a>--log[=<n>] </dt> <dt class="hdlist1" id="git-merge---no-log"> <a class="anchor" href="#git-merge---no-log"></a>--no-log </dt> <dd> <p>Além dos nomes dos ramos, preencha a mensagem do registro log com descrições de uma linha com no máximo <n> commits atuais que estão sendo mesclados. Consulte também <a href='/docs/git-fmt-merge-msg/pt_BR'>git-fmt-merge-msg[1]</a>.</p> <div class="paragraph"> <p>Com <em>--no-log</em>, não liste as descrições de uma linha vindas do commits que estão atualmente sendo mescladas.</p> </div> </dd> <dt class="hdlist1" id="git-merge-code--signoffcode"> <a class="anchor" href="#git-merge-code--signoffcode"></a><code>--signoff</code> </dt> <dt class="hdlist1" id="git-merge-code--no-signoffcode"> <a class="anchor" href="#git-merge-code--no-signoffcode"></a><code>--no-signoff</code> </dt> <dd> <p>Adicione uma linha <code>Signed-off-by</code> de quem fez o commit no final da mensagem de registro do commit. O significado de uma aprovação depende do projeto onde você está fazendo o commit. Por exemplo, ele pode certificar que quem fez o commit tem o direito de enviar o trabalho sob a licença do projeto ou concorda com alguma representação do contribuinte, como um certificado de origem do desenvolvedor. (Consulte <a href="https://developercertificate.org" class="bare">https://developercertificate.org</a> para saber qual é a usada pelo kernel do Linux e pelos projetos Git). Consulte a documentação ou a liderança do projeto para onde está contribuindo para compreender como as assinaturas são usadas nesse projeto.</p> <div class="paragraph"> <p>The <code>--no-signoff</code> option can be used to countermand an earlier <code>--signoff</code> option on the command line.</p> </div> </dd> </dl> </div> <div class="dlist"> <dl> <dt class="hdlist1" id="git-merge---stat"> <a class="anchor" href="#git-merge---stat"></a>--stat </dt> <dt class="hdlist1" id="git-merge--n"> <a class="anchor" href="#git-merge--n"></a>-n </dt> <dt class="hdlist1" id="git-merge---no-stat"> <a class="anchor" href="#git-merge---no-stat"></a>--no-stat </dt> <dd> <p>Exiba um "diffstat" no final da mesclagem. O <em>diffstat</em> também é controlado pela opção da configuração merge.stat.</p> <div class="paragraph"> <p>Com <code>-n</code> ou <code>--no-stat</code>, não mostre o <em>diffstat</em> no final da mesclagem.</p> </div> </dd> <dt class="hdlist1" id="git-merge---squash"> <a class="anchor" href="#git-merge---squash"></a>--squash </dt> <dt class="hdlist1" id="git-merge---no-squash"> <a class="anchor" href="#git-merge---no-squash"></a>--no-squash </dt> <dd> <p>Produz a árvore de trabalho e condição do índice como se uma mesclagem real tivesse acontecido (exceto pelas informações da mesclagem), mas não faz um commit, move o <code>HEAD</code> ou registra o <code>$GIT_DIR/MERGE_HEAD</code> (para fazer com que o próximo comando <code>git commit</code> crie a mesclagem de um commit). Isso permite que você crie um único commit sobre o ramo atual, cujo efeito é o mesmo que mesclar um outro ramo (ou mais, no caso de um "octopus").</p> <div class="paragraph"> <p>Com a opção <code>--no-squash</code>, execute a mesclagem e faça o commit com o resultado. Esta opção pode ser usada para substituir a opção <code>--squash</code>.</p> </div> <div class="paragraph"> <p>Com a opção <code>--squash</code>, a opção <code>--commit</code> não é permitida e irá falhar.</p> </div> </dd> <dt class="hdlist1" id="git-merge---no-verify"> <a class="anchor" href="#git-merge---no-verify"></a>--[no-]verify </dt> <dd> <p>É predefinido que os ganchos <em>pre-merge</em> e <em>commit-msg</em> sejam executados. Quando a opção <code>--no-verify</code> é usada, isso é ignorado. Consulte também <a href='/docs/githooks/pt_BR'>githooks[5]</a>.</p> </dd> <dt class="hdlist1" id="git-merge--sltestratgiagt"> <a class="anchor" href="#git-merge--sltestratgiagt"></a>-s <estratégia> </dt> <dt class="hdlist1" id="git-merge---strategyltestratgiagt"> <a class="anchor" href="#git-merge---strategyltestratgiagt"></a>--strategy=<estratégia> </dt> <dd> <p>Use a estratégia fornecida de mesclagem; mais de uma pode ser fornecida mais de uma vez para especificá-las na ordem em que devem ser testadas. Se não houver a opção <code>-s</code>, uma lista integrada de estratégias será usada em seu lugar (<code>ort</code> ao mesclar um único <code>HEAD</code>, caso contrário, <code>octopus</code>).</p> </dd> <dt class="hdlist1" id="git-merge--Xltopogt"> <a class="anchor" href="#git-merge--Xltopogt"></a>-X <opção> </dt> <dt class="hdlist1" id="git-merge---strategy-optionltopogt"> <a class="anchor" href="#git-merge---strategy-optionltopogt"></a>--strategy-option=<opção> </dt> <dd> <p>Passe a opção específica da estratégia através da estratégia de mesclagem.</p> </dd> <dt class="hdlist1" id="git-merge---verify-signatures"> <a class="anchor" href="#git-merge---verify-signatures"></a>--verify-signatures </dt> <dt class="hdlist1" id="git-merge---no-verify-signatures"> <a class="anchor" href="#git-merge---no-verify-signatures"></a>--no-verify-signatures </dt> <dd> <p>Verifique se o commit do cume do ramo lateral que está sendo mesclado está assinado com uma chave válida, ou seja, uma chave que tenha uma UID válida: no modelo de confiança predefinido, isso significa que a chave da assinatura foi assinada por uma chave confiável. Se o commit do cume do ramo secundário não for assinado com uma chave válida, a mesclagem será abortada.</p> </dd> <dt class="hdlist1" id="git-merge---summary"> <a class="anchor" href="#git-merge---summary"></a>--summary </dt> <dt class="hdlist1" id="git-merge---no-summary"> <a class="anchor" href="#git-merge---no-summary"></a>--no-summary </dt> <dd> <p>É um sinônimos para <code>--stat</code> e <code>--no-stat</code>; estas opções foram descontinuadas e serão removidas no futuro.</p> </dd> <dt class="hdlist1" id="git-merge--q"> <a class="anchor" href="#git-merge--q"></a>-q </dt> <dt class="hdlist1" id="git-merge---quiet"> <a class="anchor" href="#git-merge---quiet"></a>--quiet </dt> <dd> <p>Opere em silêncio. Implica no uso da opção <code>--no-progress</code>.</p> </dd> <dt class="hdlist1" id="git-merge--v"> <a class="anchor" href="#git-merge--v"></a>-v </dt> <dt class="hdlist1" id="git-merge---verbose"> <a class="anchor" href="#git-merge---verbose"></a>--verbose </dt> <dd> <p>Seja loquaz.</p> </dd> <dt class="hdlist1" id="git-merge---progress"> <a class="anchor" href="#git-merge---progress"></a>--progress </dt> <dt class="hdlist1" id="git-merge---no-progress"> <a class="anchor" href="#git-merge---no-progress"></a>--no-progress </dt> <dd> <p>Ativar/desativar explicitamente o progresso. Se nenhum dos dois for usado, o progresso será mostrado se o erro predefinido estiver conectado a um terminal. Observe que nem todas as estratégias de mesclagem podem ser compatíveis com os relatórios de progresso.</p> </dd> <dt class="hdlist1" id="git-merge---autostash"> <a class="anchor" href="#git-merge---autostash"></a>--autostash </dt> <dt class="hdlist1" id="git-merge---no-autostash"> <a class="anchor" href="#git-merge---no-autostash"></a>--no-autostash </dt> <dd> <p>Crie automaticamente uma entrada temporária de armazenamento antes do início da operação, registre-a na <em>ref</em> <code>MERGE_AUTOSTASH</code> e aplique-a ao concluir a operação. Isso significa que você pode executar a operação numa árvore de trabalho suja. No entanto, use-o com cuidado: o aplicativo de armazenamento final após uma mesclagem bem-sucedida pode resultar em conflitos não triviais.</p> </dd> <dt class="hdlist1" id="git-merge---allow-unrelated-histories"> <a class="anchor" href="#git-merge---allow-unrelated-histories"></a>--allow-unrelated-histories </dt> <dd> <p>É predefinido que o comando <code>git merge</code> se recuse a mesclar os históricos que não compartilham de um ancestral comum. Esta opção pode ser usada para substituir este tipo de segurança ao mesclar os históricos de dois projetos que começaram suas vidas de forma independente. Como essa é uma ocasião muito rara, não existe nenhuma variável de configuração para ativar isso por padrão e ela também não será adicionada.</p> </dd> </dl> </div> <div class="dlist"> <dl> <dt class="hdlist1" id="git-merge--mltmsggt"> <a class="anchor" href="#git-merge--mltmsggt"></a>-m <msg> </dt> <dd> <p>Defina a mensagem do commit que será utilizada para a mesclagem do commit (no caso de uma ser criada).</p> <div class="paragraph"> <p>Caso <code>--log</code> seja utilizado, um atalho dos commits que estão sendo mesclados será anexado à mensagem informada.</p> </div> <div class="paragraph"> <p>O comando <code>git fmt-merge-msg</code> pode ser usado para fornecer um bom padrão para invocações automatizadas do comando <code>git merge</code>. A mensagem automática pode incluir a descrição da agência.</p> </div> </dd> <dt class="hdlist1" id="git-merge---into-nameltramogt"> <a class="anchor" href="#git-merge---into-nameltramogt"></a>--into-name <ramo> </dt> <dd> <p>Prepare a mensagem predefinida da mesclagem como se fosse uma mesclagem para a ramificação <code><ramificação></code> em vez do nome da ramificação real para onde a mesclagem for feita.</p> </dd> <dt class="hdlist1" id="git-merge--Fltarquivogt"> <a class="anchor" href="#git-merge--Fltarquivogt"></a>-F <arquivo> </dt> <dt class="hdlist1" id="git-merge---fileltarquivogt"> <a class="anchor" href="#git-merge---fileltarquivogt"></a>--file=<arquivo> </dt> <dd> <p>Leia a mensagem de commit que será utilizada para mesclar o commit (no caso de uma ser criada).</p> <div class="paragraph"> <p>Caso <code>--log</code> seja utilizado, um atalho dos commits que estão sendo mesclados será anexado à mensagem informada.</p> </div> </dd> <dt class="hdlist1" id="git-merge---rerere-autoupdate"> <a class="anchor" href="#git-merge---rerere-autoupdate"></a>--rerere-autoupdate </dt> <dt class="hdlist1" id="git-merge---no-rerere-autoupdate"> <a class="anchor" href="#git-merge---no-rerere-autoupdate"></a>--no-rerere-autoupdate </dt> <dd> <p>Depois que o mecanismo <em>rerere</em> reutilizar uma resolução registrada no conflito atual para atualizar os arquivos na árvore de trabalho, permita que ele também atualize o índice com o resultado da resolução. A opção <code>--no-rerere-autoupdate</code> é uma boa maneira de verificar novamente o que o <code>rerere</code> fez e detectar possíveis erros de mesclagem, antes de fazer o commit resultante no índice com um comando <code>git add</code> separado.</p> </dd> </dl> </div> <div class="dlist"> <dl> <dt class="hdlist1" id="git-merge---overwrite-ignore"> <a class="anchor" href="#git-merge---overwrite-ignore"></a>--overwrite-ignore </dt> <dt class="hdlist1" id="git-merge---no-overwrite-ignore"> <a class="anchor" href="#git-merge---no-overwrite-ignore"></a>--no-overwrite-ignore </dt> <dd> <p>Silently overwrite ignored files from the merge result. Este é o comportamento predefinido. Use <code>--no-overwrite-ignore</code> to abort.</p> </dd> <dt class="hdlist1" id="git-merge---abort"> <a class="anchor" href="#git-merge---abort"></a>--abort </dt> <dd> <p>Interrompa o processo atual da resolução de conflitos e tente reconstruir a condição de pré-mesclagem. Caso uma entrada de "autostash" esteja presente, aplique-a à árvore de trabalho.</p> <div class="paragraph"> <p>Se houver alterações sem commits na árvore de trabalho quando a mesclagem for iniciada, o comando <code>git merge --abort</code> não conseguirá, em alguns casos, reconstruir estas alterações. Portanto, é recomendável fazer o commit ou armazenar as suas alterações antes de executar o comando <code>git merge</code>.</p> </div> <div class="paragraph"> <p>O comando <code>git merge --abort</code> é equivalente ao comando <code>git reset --merge</code> quando o <code>MERGE_HEAD</code> está presente, a menos que o <code>MERGE_AUTOSTASH</code> também esteja presente, caso onde o comando <code>git merge --abort</code> aplica a entrada de stash à árvore de trabalho, enquanto o comando <code>git reset --merge</code> salvará as alterações armazenadas na lista de armazenamento (stash).</p> </div> </dd> <dt class="hdlist1" id="git-merge---quit"> <a class="anchor" href="#git-merge---quit"></a>--quit </dt> <dd> <p>Não se preocupe com a mesclagem em andamento. Mantenha o índice e a árvore de trabalho como estão. Caso <code>MERGE_AUTOSTASH</code> esteja presente, os lançamentos armazenados serão salvos na lista "stash".</p> </dd> <dt class="hdlist1" id="git-merge---continue"> <a class="anchor" href="#git-merge---continue"></a>--continue </dt> <dd> <p>Após a interrupção de um comando`git merge` devido a conflitos, é possível concluir a mesclagem executando o comando <code>git merge --continue</code> (consulte a seção "COMO RESOLVER CONFLITOS" abaixo).</p> </dd> <dt class="hdlist1" id="git-merge-ltcommitgt82308203"> <a class="anchor" href="#git-merge-ltcommitgt82308203"></a><commit>…​ </dt> <dd> <p>Os commits, geralmente vindo dos cabeçalhos de outras ramificações, para mesclar em nossa ramificação. Ao especificar mais de um commit criará uma mesclagem com mais de duas origens (carinhosamente chamada de mesclagem Octopus).</p> <div class="paragraph"> <p>Se nenhum commit for informado na linha de comando, mescle os ramos rastreados remotamente que o ramo atual está configurado para usar como o seu upstream. Consulte também a seção de configuração nesta página do manual.</p> </div> <div class="paragraph"> <p>Quando <code>FETCH_HEAD</code> (e nenhum outro commit) for definido, as ramificações registradas no arquivo <code>.git/FETCH_HEAD</code> através da invocação anterior para mesclagem com o comando <code>git fetch</code>, serão mescladas no ramo atual.</p> </div> </dd> </dl> </div> </div> </div> <div class="sect1"> <h2 id="_verificações_prévias_da_mesclagem"><a class="anchor" href="#_verificações_prévias_da_mesclagem"></a>VERIFICAÇÕES PRÉVIAS DA MESCLAGEM</h2> <div class="sectionbody"> <div class="paragraph"> <p>Antes de aplicar alterações externas, você deve deixar seu próprio trabalho em bom estado e confirmá-lo localmente, para que ele não seja prejudicado se houver conflitos. Consulte também <a href='/docs/git-stash/pt_BR'>git-stash[1]</a>. O comando <code>git pull</code> e o <code>git merge</code> serão interrompidos quando as alterações locais não confirmadas se sobrepuserem aos arquivos que os comandos <code>git pull</code>/<code>git merge</code> talvez precisem atualizar.</p> </div> <div class="paragraph"> <p>Para evitar o registro de alterações não relacionadas na mesclagem do commit, o comando <code>git pull</code> e o comando <code>git merge</code> também serão interrompidos se houver alterações registradas no índice em relação ao commit <code>HEAD</code>. (Podem existir exceções especiais a essa regra, dependendo da estratégia de mesclagem que estiver sendo usada, mas, em geral, o índice deve corresponder ao HEAD.)</p> </div> <div class="paragraph"> <p>Se todos os commits nomeados já forem ancestrais de <code>HEAD</code>, o comando <code>git merge</code> será encerrado antecipadamente com a mensagem "Already up to date."</p> </div> </div> </div> <div class="sect1"> <h2 id="_mesclagem_com_avanço_rápido"><a class="anchor" href="#_mesclagem_com_avanço_rápido"></a>MESCLAGEM COM AVANÇO RÁPIDO</h2> <div class="sectionbody"> <div class="paragraph"> <p>Muitas vezes, o cabeçalho do ramo atual é um ancestral do commit nomeado. Esse é o caso mais comum, especialmente quando invocado a partir do comando <code>git pull</code>: você está rastreando um repositório "upstream", não fez nenhuma alteração local e agora deseja atualizar para uma revisão upstream mais recente. Nesse caso, não é necessário um novo commit para armazenar o histórico combinado; em vez disso, o <code>HEAD</code> (junto com o índice) é atualizado para apontar para determinado commit, sem criar um commit extra de mesclagem.</p> </div> <div class="paragraph"> <p>Este comportamento pode ser suprimido ao usar a opção <code>--no-ff</code>.</p> </div> </div> </div> <div class="sect1"> <h2 id="_mesclagem_real"><a class="anchor" href="#_mesclagem_real"></a>MESCLAGEM REAL</h2> <div class="sectionbody"> <div class="paragraph"> <p>Exceto numa mesclagem de avanço rápido (veja acima), as ramificações que serão mescladas devem ser vinculadas através de uma consolidação da mesclagem que tenha ambas como as suas origens.</p> </div> <div class="paragraph"> <p>Um commit é feito de uma versão mesclada que reconcilia as alterações de todos os ramos a serem mesclados, e seu <code>HEAD</code>, o índice e a árvore de trabalho são atualizados nela. É possível ter alterações na árvore de trabalho, desde que elas não se sobreponham; assim, a atualização as preservará.</p> </div> <div class="paragraph"> <p>Quando não é óbvio como reconciliar as alterações, acontece o seguinte:</p> </div> <div class="olist arabic"> <ol class="arabic"> <li> <p>O indicador do <code>HEAD</code> se mantém o mesmo.</p> </li> <li> <p>O "ref" do <code>MERGE_HEAD</code> é definido para indicar o <code>HEAD</code> do outro ramo.</p> </li> <li> <p>Os caminhos que foram mesclados corretamente são atualizados no arquivo do índice e na sua árvore de trabalho.</p> </li> <li> <p>Para caminhos conflitantes, o arquivo de índice registra até três versões: o estágio 1 armazena a versão do ancestral comum, o estágio 2 de <code>HEAD</code> e o estágio 3 de <code>MERGE_HEAD</code> (você pode inspecionar os estágios com o comando <code>git ls-files -u</code>). Os arquivos da árvore de trabalho contêm o resultado da operação da mesclagem, ou seja, os resultados da mesclagem de três vias com marcadores de conflito familiares <code><<<</code> <code>===</code> <code>>>></code>.</p> </li> <li> <p>Uma referência denominada <code>AUTO_MERGE</code> é gravada, apontando para uma árvore correspondente ao conteúdo atual da árvore de trabalho (incluindo marcadores de conflito para conflitos textuais). Observe que essa referência só é gravada quando a estratégia de mesclagem "ort" é usada (que é a predefinição).</p> </li> <li> <p>Nenhuma outra alteração é feita. Em particular, as modificações locais que você tinha antes de iniciar a mesclagem permanecerão as mesmas e as entradas de índice para elas permanecerão como estavam, ou seja, correspondendo a <code>HEAD</code>.</p> </li> </ol> </div> <div class="paragraph"> <p>Caso tenha tentado uma mesclagem que resultou em conflitos complexos e queira recomeçar, execute o comando <code>git merge --abort</code>.</p> </div> </div> </div> <div class="sect1"> <h2 id="_mesclando_tag"><a class="anchor" href="#_mesclando_tag"></a>MESCLANDO TAG</h2> <div class="sectionbody"> <div class="paragraph"> <p>Ao mesclar uma etiqueta anotada (e possivelmente assinada), o Git sempre cria a mesclagem de um commit, mesmo que seja possível uma mesclagem rápida, e o modelo da mensagem do commit é preparada com a mensagem da etiqueta. Além disso, se a tag for assinada, a verificação da assinatura será relatada como um comentário no modelo da mensagem. Consulte também <a href='/docs/git-tag/pt_BR'>git-tag[1]</a>.</p> </div> <div class="paragraph"> <p>Quando você deseja apenas integrar-se ao trabalho que leva ao commit que está marcado, por exemplo, sincronizando com um ponto de liberação upstream, talvez você não queira fazer uma consolidação desnecessária da mesclagem.</p> </div> <div class="paragraph"> <p>Neste caso, você pode "desembrulhar" a etiqueta antes de encaminhá-la para o comando <code>git merge</code> ou passar ao <code>--ff-only</code> quando você não tiver nenhum trabalho feito por conta própria. por exemplo.</p> </div> <div class="listingblock"> <div class="content"> <pre>git fetch origin git merge v1.2.3^0 git merge --ff-only v1.2.3</pre> </div> </div> </div> </div> <div class="sect1"> <h2 id="_como_os_conflitos_são_apresentados"><a class="anchor" href="#_como_os_conflitos_são_apresentados"></a>COMO OS CONFLITOS SÃO APRESENTADOS</h2> <div class="sectionbody"> <div class="paragraph"> <p>Durante uma mesclagem, os arquivos da árvore de trabalho são atualizados para refletir o resultado da mesclagem. Entre as alterações feitas na versão do ancestral comum, as que não se sobrepõem (ou seja, você alterou uma área do arquivo enquanto o outro lado deixou essa área intacta, ou vice-versa) são incorporadas literalmente ao resultado final. No entanto, quando ambos os lados fizeram alterações na mesma área, o Git não pode escolher aleatoriamente um lado em detrimento do outro e pede que você resolva a questão deixando o que ambos os lados fizeram nessa área.</p> </div> <div class="paragraph"> <p>É predefinido que o Git utilize o mesmo estilo que o utilizado pelo programa "merge" (mesclar) do conjunto RCS para apresentar um pedaço conflitante, como este:</p> </div> <div class="listingblock"> <div class="content"> <pre>Aqui estão as linhas que não são alteradas em relação ao ancestral comum ou resolvido de maneira limpa porque apenas um lado foi alterado ou foi resolvido de forma limpa porque ambos os lados foram igualmente alterados. <<<<<<< yours:sample.txt A resolução de conflitos é difícil; vamos às compras. ======= O Git facilita a resolução de conflitos. >>>>>>> theirs:sample.txt E aqui está outra linha que foi claramente resolvida ou não foi modificada.</pre> </div> </div> <div class="paragraph"> <p>A área onde ocorreu um par de alterações conflitantes é marcada com os marcadores <code><<<<<<<</code>, <code>=======</code> e <code>>>>>>>></code>. A parte antes do <code>=======</code> é normalmente o seu lado, e a parte após geralmente é o lado deles.</p> </div> <div class="paragraph"> <p>O formato predefinido não mostra o que o original dizia na área conflitante. Não dá para saber quantas linhas foram excluídas e substituídas pelo comentário da Barbie do seu lado. A única coisa que você pode dizer é que o seu lado quer dizer que é difícil e que você prefere ir às compras, enquanto o outro lado quer dizer que é fácil.</p> </div> <div class="paragraph"> <p>Um estilo alternativo pode ser usado definindo a variável de configuração <code>merge.conflictStyle</code> como "diff3" ou "zdiff3". No estilo "diff3", o conflito acima pode ter a seguinte aparência:</p> </div> <div class="listingblock"> <div class="content"> <pre>Aqui estão as linhas que não são alteradas em relação ao ancestral comum ou foi resolvido de maneira limpa porque apenas um lado foi alterado. <<<<<<< seu:sample.txt ou resolvidos de forma limpa porque ambos os lados foram alterados igualmente. A resolução de conflitos é difícil; vamos às compras. ||||||| base:sample.txt ou resolvidos de forma limpa porque ambos os lados foram igualmente alterados. A resolução de conflitos é difícil. ======= ou resolvidos de forma limpa porque ambos os lados foram alterados igualmente. O git facilita a resolução de conflitos. >>>>>>> deles:sample.txt E aqui está outra linha que foi resolvida ou não foi modificada.</pre> </div> </div> <div class="paragraph"> <p>enquanto no estilo "zdiff3", por ficar assim:</p> </div> <div class="listingblock"> <div class="content"> <pre>Aqui estão as linhas que não são alteradas a partir do ancestral comum ou foi resolvido de maneira limpa porque apenas um lado foi alterado, ou foi resolvido de maneira limpa porque apenas um lado foi alterado. <<<<<<< seu:sample.txt A resolução de conflitos é difícil; vamos às compras. ||||||| base:sample.txt ou resolvidos de forma limpa porque ambos os lados foram igualmente alterados. A resolução de conflitos é difícil; ======= O Git facilita a resolução de conflitos. >>>>>>> deles:sample.txt E aqui está outra linha que foi claramente resolvida ou não foi modificada.</pre> </div> </div> <div class="paragraph"> <p>Além dos marcadores <code><<<<<<<</code>, <code>=======</code> e <code>>>>>>>></code>, ele usa outro marcador <code>|||||||</code> que é seguido pelo texto original. Você pode dizer que o original apenas declarou um fato, e o seu lado simplesmente cedeu a essa declaração e desistiu, enquanto o outro lado tentou ter uma atitude mais positiva. Às vezes, você pode chegar a uma resolução melhor visualizando o original.</p> </div> </div> </div> <div class="sect1"> <h2 id="_como_resolver_os_conflitos"><a class="anchor" href="#_como_resolver_os_conflitos"></a>COMO RESOLVER OS CONFLITOS</h2> <div class="sectionbody"> <div class="paragraph"> <p>Após encontrar um conflito, você pode fazer duas coisas:</p> </div> <div class="ulist"> <ul> <li> <p>Decidir não fazer a mesclagem. As únicas limpezas necessárias são redefinir o arquivo de índice para o commit <code>HEAD</code> para reverter 2. E para limpar as alterações na árvore de trabalho feitas pelo 2. E 3.; o <code>git merge --abort</code> pode ser usado para isso.</p> </li> <li> <p>Resolver os conflitos. O Git marcará os conflitos na árvore de trabalho. Edite os arquivos e adicione-os ao índice através do comando <code>git add</code>. Use o comando <code>git commit</code> ou <code>git merge --continue</code> para passar a régua. O último comando verifica se há uma mesclagem (interrompida) em andamento antes de invocar o comando <code>git commit</code>.</p> </li> </ul> </div> <div class="paragraph"> <p>Você pode trabalhar o conflito com uma quantidade de ferramentas:</p> </div> <div class="ulist"> <ul> <li> <p>Use o mergetool. O comando <code>git mergetool</code> para iniciar um mergetool gráfico que trabalhará com você durante a mesclagem.</p> </li> <li> <p>Visualizando os diffs. O <code>git diff</code> mostrará um diff de três vias, destacando as alterações das versões <code>HEAD</code> e <code>MERGE_HEAD</code>. O comando <code>git diff AUTO_MERGE</code> mostrará as alterações que você fez até o momento para resolver conflitos textuais.</p> </li> <li> <p>Veja as diferenças de cada ramo. O comando <code>git log --merge -p <caminho></code> exibirá as diferenças primeiro para a versão <code>HEAD</code> e depois para a versão <code>MERGE_HEAD</code>.</p> </li> <li> <p>Visualizando os originais. O comando <code>git show :1:filename</code> mostra o ancestral comum, o comando <code>git show :2:filename</code> mostra a versão <code>HEAD</code> e o comando <code>git show :3:filename</code> mostra a versão <code>MERGE_HEAD</code>.</p> </li> </ul> </div> </div> </div> <div class="sect1"> <h2 id="_exemplos"><a class="anchor" href="#_exemplos"></a>EXEMPLOS</h2> <div class="sectionbody"> <div class="ulist"> <ul> <li> <p>Mescla as ramificações <code>fixes</code> e <code>enhancements</code> no cume do ramo atual, fazendo um conjunto de mesclagens:</p> <div class="listingblock"> <div class="content"> <pre>$ git merge fixes enhancements</pre> </div> </div> </li> <li> <p>Mescle o ramo <code>obsolete</code> (obsoleto) no ramo atual, utilizando a <code>nossa</code> estratégia de mesclagem:</p> <div class="listingblock"> <div class="content"> <pre>$ git merge -s ours obsolete</pre> </div> </div> </li> <li> <p>Mescla o ramo <code>maint</code> no ramo atual, porém não faça um novo commit de forma automática:</p> <div class="listingblock"> <div class="content"> <pre>$ git merge --no-commit maint</pre> </div> </div> <div class="paragraph"> <p>Isso pode ser utilizado quando você queira incluir outras alterações na mesclagem ou se deseja, grave a sua própria mensagem do commit na mesclagem.</p> </div> <div class="paragraph"> <p>Você não deve abusar desta opção para inserir alterações substanciais na mesclagem de um commit. Pequenas correções, como o acréscimo do nome da versão, seriam aceitáveis.</p> </div> </li> </ul> </div> </div> </div> <div class="sect1"> <h2 id="_estratégias_de_mesclagem"><a class="anchor" href="#_estratégias_de_mesclagem"></a>ESTRATÉGIAS DE MESCLAGEM</h2> <div class="sectionbody"> <div class="paragraph"> <p>O mecanismo de mesclagem (os comandos <code>git merge</code> e <code>git pull</code>) permite que as <em>estratégias de mesclagem</em> do backend sejam escolhidas com a opção <code>-s</code>. Algumas estratégias também podem ter as suas próprias opções, que podem ser passadas usando argumentos <code>-X<opção></code> ao comando <code>git merge</code> e/ou <code>git pull</code>.</p> </div> <div class="dlist"> <dl> <dt class="hdlist1" id="git-merge-ort"> <a class="anchor" href="#git-merge-ort"></a>ort </dt> <dd> <p>Esta é a estratégia de mesclagem predefinida ao extrair ou ao mesclar um ramo. Esta estratégia só pode resolver dois <code>HEADS</code> usando um algoritmo de mesclagem de 3 vias. Quando há mais de um ancestral comum que pode ser usado para a mesclagem de 3 vias, ele cria uma árvore mesclada dos ancestrais comuns e a utiliza como uma árvore de referência para a mesclagem de 3 vias. Foi relatado que isso resulta em menos conflitos de mesclagem sem causar erros de mesclagem através dos testes feitos na mesclagem dos commits reais retirados do histórico de desenvolvimento do kernel do Linux 2.6. Além disso, esta estratégia pode detectar e lidar com as mesclagens que envolvam renomeações. Não faz uso de cópias detectadas. O nome desse algoritmo é um acrônimo ("Ostensibly Recursive’s Twin") e surgiu do fato de que ele foi escrito como um substituto para o padrão di algoritmo anterior, <code>recursive</code>.</p> <div class="paragraph"> <p>A estratégia <em>ort</em> pode adotar as seguintes opções:</p> </div> <div class="dlist"> <dl> <dt class="hdlist1" id="git-merge-ours"> <a class="anchor" href="#git-merge-ours"></a>ours </dt> <dd> <p>Esta opção impõem a resolução automática dos conflitos de maneira limpa, favorecendo a <em>nossa</em> versão. As alterações da outra árvore que não entram em conflito com o nosso lado são refletidas no resultado da mesclagem. Para um arquivo binário, todo o conteúdo é retirado a partir do nosso lado.</p> <div class="paragraph"> <p>Isso não deve ser confundido com a estratégia da <em>nossa</em> mesclagem, que nem sequer analisa o que a outra árvore contém. Ela descarta tudo o que a outra árvore fez, declarando que a <em>nossa</em> história contém tudo o que aconteceu nela.</p> </div> </dd> <dt class="hdlist1" id="git-merge-theirs"> <a class="anchor" href="#git-merge-theirs"></a>theirs </dt> <dd> <p>Este é o oposto do <em>nosso</em>; observe que, diferentemente do <em>nosso</em>, não existe uma estratégia de mesclagem <em>deles</em> para confundir esta opção de mesclagem.</p> </dd> <dt class="hdlist1" id="git-merge-ignore-space-change"> <a class="anchor" href="#git-merge-ignore-space-change"></a>ignore-space-change </dt> <dt class="hdlist1" id="git-merge-ignore-all-space"> <a class="anchor" href="#git-merge-ignore-all-space"></a>ignore-all-space </dt> <dt class="hdlist1" id="git-merge-ignore-space-at-eol"> <a class="anchor" href="#git-merge-ignore-space-at-eol"></a>ignore-space-at-eol </dt> <dt class="hdlist1" id="git-merge-ignore-cr-at-eol"> <a class="anchor" href="#git-merge-ignore-cr-at-eol"></a>ignore-cr-at-eol </dt> <dd> <p>Trata as linhas com o tipo indicado de alteração do espaço em branco como inalteradas para os fins de uma mesclagem de três vias. As alterações do espaço em branco misturadas com as outras alterações numa linha não são ignoradas. Consulte também o comando <a href='/docs/git-diff/pt_BR'>git-diff[1]</a> <code>-b</code>, <code>-w</code>, <code>--ignore-space-at-eol</code>, e a opção <code>--ignore-cr-at-eol</code>.</p> <div class="ulist"> <ul> <li> <p>Caso a versão <em>their</em> (dele) introduzir apenas as alterações de espaço em uma linha, a <em>our</em> (nossa) versão será utilizada;</p> </li> <li> <p>Caso a <em>our</em> (nossa) versão introduzir alterações nos espaços, porém a versão <em>their</em> (dele) incluir uma alteração substancial, a versão <em>their</em> (dele) será utilizada;</p> </li> <li> <p>Caso contrário, a mesclagem continuará de forma usual.</p> </li> </ul> </div> </dd> <dt class="hdlist1" id="git-merge-renormalize"> <a class="anchor" href="#git-merge-renormalize"></a>renormalize </dt> <dd> <p>This runs a virtual check-out and check-in of all three stages of any file which needs a three-way merge. This option is meant to be used when merging branches with different clean filters or end-of-line normalization rules. See "Merging branches with differing checkin/checkout attributes" in <a href='/docs/gitattributes/pt_BR'>gitattributes[5]</a> for details.</p> </dd> <dt class="hdlist1" id="git-merge-no-renormalize"> <a class="anchor" href="#git-merge-no-renormalize"></a>no-renormalize </dt> <dd> <p>Desativa a opção <code>renormalize</code>. Isso substitui a variável de configuração <code>merge.renormalize</code>.</p> </dd> <dt class="hdlist1" id="git-merge-find-renamesltngt"> <a class="anchor" href="#git-merge-find-renamesltngt"></a>find-renames[=<n>] </dt> <dd> <p>Ative a detecção de renomeação, definindo opcionalmente o limite de similaridade. Esta é a predefinição. Isso substitui a variável de configuração <em>merge.renames</em>. Consulte também <a href='/docs/git-diff/pt_BR'>git-diff[1]</a> <code>--find-renames</code>.</p> </dd> <dt class="hdlist1" id="git-merge-rename-thresholdltngt"> <a class="anchor" href="#git-merge-rename-thresholdltngt"></a>rename-threshold=<n> </dt> <dd> <p>É um sinônimo obsoleto para <code>find-renames=<n></code>.</p> </dd> <dt class="hdlist1" id="git-merge-subtreeltcaminhogt"> <a class="anchor" href="#git-merge-subtreeltcaminhogt"></a>subtree[=<caminho>] </dt> <dd> <p>Esta opção é uma forma mais avançada de estratégia de <em>subárvore</em>, onde a estratégia faz uma estimativa de como as duas árvores devem ser deslocadas para coincidir uma com a outra durante a mesclagem. Em vez disso, o caminho especificado é prefixado (ou retirado do início) para fazer com que a forma das duas árvores coincida.</p> </dd> </dl> </div> </dd> <dt class="hdlist1" id="git-merge-recursive"> <a class="anchor" href="#git-merge-recursive"></a>recursive </dt> <dd> <p>Isso só pode resolver dois cabeçalhos usando um algoritmo de mesclagem de 3 vias. Quando há mais de um ancestral comum que pode ser usado para a mesclagem de 3 vias, ele cria uma árvore mesclada dos ancestrais comuns e a utiliza como uma árvore de referência para a mesclagem de 3 vias. Foi relatado que isso resulta em menos conflitos de mesclagem sem causar erros de mesclagem através dos testes feitos na mesclagem dos commits reais retirados do histórico de desenvolvimento do kernel do Linux 2.6. Além disso, ele pode detectar e lidar com mesclagens que envolvam renomeações. Não faz uso de cópias detectadas. Essa era a estratégia padrão para resolver dois cabeçalhos do Git v0.99.9k até a v2.33.0.</p> <div class="paragraph"> <p>A estratégia <em>recursiva</em> usa as mesmas opções que a <em>ort</em>. Entretanto, há três opções adicionais que o <em>ort</em> ignora (não documentadas acima) e que podem ser úteis com a estratégia <em>recursiva</em>:</p> </div> <div class="dlist"> <dl> <dt class="hdlist1" id="git-merge-patience"> <a class="anchor" href="#git-merge-patience"></a>patience </dt> <dd> <p>É um sinônimo obsoleto para <code>diff-algorithm=patience</code>.</p> </dd> <dt class="hdlist1" id="git-merge-diff-algorithmpatienceminimalhistogrammyers"> <a class="anchor" href="#git-merge-diff-algorithmpatienceminimalhistogrammyers"></a>diff-algorithm=[patience|minimal|histogram|myers] </dt> <dd> <p>Use um algoritmo de comparação diferente durante a mesclagem, o que pode ajudar a evitar mesclagens incorretas que ocorrem devido a linhas correspondentes sem importância (como chaves de funções distintas). Consulte também <a href='/docs/git-diff/pt_BR'>git-diff[1]</a> <code>--diff-algorithm</code>. Observe que <code>ort</code> usa especificamente <code>diff-algorithm=histogram</code>, enquanto <code>recursive</code> usa como predefinição a configuração <code>diff.algorithm</code>.</p> </dd> <dt class="hdlist1" id="git-merge-no-renames"> <a class="anchor" href="#git-merge-no-renames"></a>no-renames </dt> <dd> <p>Desativa a detecção de renomeação. Isto sobrepõem a variável de configuração <code>merge.renames</code> configuration. Consulte também <a href='/docs/git-diff/pt_BR'>git-diff[1]</a> <code>--no-renames</code>.</p> </dd> </dl> </div> </dd> <dt class="hdlist1" id="git-merge-resolve"> <a class="anchor" href="#git-merge-resolve"></a>resolve </dt> <dd> <p>Isso só pode resolver duas cabeças (ou seja, o ramo atual e outro ramo do qual você retirou) usando um algoritmo de mesclagem de três vias. Ele tenta detectar cuidadosamente as ambiguidades de mesclagem cruzada. Ele não lida com renomeações.</p> </dd> <dt class="hdlist1" id="git-merge-octopus"> <a class="anchor" href="#git-merge-octopus"></a>octopus </dt> <dd> <p>Isso resolve casos com mais de dois cabeçalhos, mas se recusa a fazer uma mesclagem complexa que precise de uma resolução manual. Seu principal objetivo é ser usado para agrupar os tópicos dos cabeçalhos juntos. Esta é a estratégia de mesclagem predefinida ao obter (fazer um pull) ou ao mesclar um ramo.</p> </dd> <dt class="hdlist1" id="git-merge-ours-1"> <a class="anchor" href="#git-merge-ours-1"></a>ours </dt> <dd> <p>Isso resolve qualquer quantidade de cabeçalhos, mas a árvore resultante da mesclagem é sempre a do cabeçalho do ramo atual, ignorando efetivamente todas as alterações de todos os outros ramos. Ele deve ser usado para substituir o histórico de desenvolvimento antigo das ramificações paralelas. Observe que isso é diferente da opção <code>-Xours</code> para a estratégia de mesclagem da opção <em>recursive</em>.</p> </dd> <dt class="hdlist1" id="git-merge-subtree"> <a class="anchor" href="#git-merge-subtree"></a>subtree </dt> <dd> <p>Esta é uma estratégia <code>ort</code> modificada. Ao mesclar as árvores <em>A</em> e <em>B</em>, caso <em>B</em> corresponda a uma subárvore de <em>A</em>, o <em>B</em> será ajustado primeiro para coincidir à estrutura da árvore <em>A</em>, em vez de ler as árvores no mesmo nível. Esse ajuste também é feito na árvore ancestral comum.</p> </dd> </dl> </div> <div class="paragraph"> <p>Com as estratégias que usam a mesclagem de 3 vias (incluindo a predefinição, <em>ort</em>), se uma alteração for feita em ambos os ramos, mas posteriormente revertida num dos ramos, essa alteração estará presente no resultado da mesclagem; algumas pessoas acham este comportamento confuso. Isto ocorre porque somente os cabeçalhos e a base de mesclagem são considerados ao realizar uma mesclagem, e não os commits individuais. Portanto, o algoritmo de mesclagem considera a alteração revertida como se não houvesse nenhuma alteração e, em vez disso, substitui a versão alterada.</p> </div> </div> </div> <div class="sect1"> <h2 id="_configuração"><a class="anchor" href="#_configuração"></a>CONFIGURAÇÃO</h2> <div class="sectionbody"> <div class="dlist"> <dl> <dt class="hdlist1" id="git-merge-branchltnomegtmergeOptions"> <a class="anchor" href="#git-merge-branchltnomegtmergeOptions"></a>branch.<nome>.mergeOptions </dt> <dd> <p>Define as opções predefinidas para a mesclagem no ramo <nome>. A sintaxe e as opções suportadas são as mesmas do comando <code>git merge</code>, não são compatíveis no momento valores da opção que contenha caracteres de espaço em branco.</p> </dd> </dl> </div> <div class="paragraph"> <p>Tudo acima desta linha nesta seção não está incluído na documentação <a href='/docs/git-config/pt_BR'>git-config[1]</a>. O conteúdo que segue é o mesmo que se encontra lá:</p> </div> <div class="admonitionblock warning"> <table> <tr> <td class="icon"> <div class="title">Warning</div> </td> <td class="content"> <div class="paragraph"> <p>Missing <code>pt_BR/config/merge.adoc</code></p> </div> <div class="paragraph"> <p>See original version for this content.</p> </div> </td> </tr> </table> </div> </div> </div> <div class="sect1"> <h2 id="_veja_também"><a class="anchor" href="#_veja_também"></a>VEJA TAMBÉM</h2> <div class="sectionbody"> <div class="paragraph"> <p><a href='/docs/git-fmt-merge-msg/pt_BR'>git-fmt-merge-msg[1]</a>, <a href='/docs/git-pull/pt_BR'>git-pull[1]</a>, <a href='/docs/gitattributes/pt_BR'>gitattributes[5]</a>, <a href='/docs/git-reset/pt_BR'>git-reset[1]</a>, <a href='/docs/git-diff/pt_BR'>git-diff[1]</a>, <a href='/docs/git-ls-files/pt_BR'>git-ls-files[1]</a>, <a href='/docs/git-add/pt_BR'>git-add[1]</a>, <a href='/docs/git-rm/pt_BR'>git-rm[1]</a>, <a href='/docs/git-mergetool/pt_BR'>git-mergetool[1]</a></p> </div> </div> </div> <div class="sect1"> <h2 id="_git"><a class="anchor" href="#_git"></a>GIT</h2> <div class="sectionbody"> <div class="paragraph"> <p>Parte do conjunto <a href='/docs/git/pt_BR'>git[1]</a></p> </div> </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/modernizr.js"></script> <script src="/js/modernize.js"></script> <script src="/js/application.min.js"></script> </div> </body> </html>