CINXE.COM
Git - Trabalhando de Forma Remota
<!DOCTYPE html> <html lang="pt-br"> <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 - Trabalhando de Forma Remota</title> <link href="/favicon.ico" rel='shortcut icon' type='image/x-icon'> <link rel="stylesheet" href="/application.min.css"> <script src="/js/modernizr.js"></script> <script src="/js/modernize.js"></script> </head> <body id="documentation"> <div class="inner"> <header> <a href="/"><img src="/images/logo@2x.png" width="110" height="46" alt="Git" /></a> <span id="tagline"></span> <script type="text/javascript"> const taglines = [ "fast-version-control", "everything-is-local", "distributed-even-if-your-workflow-isnt", "local-branching-on-the-cheap", "distributed-is-the-new-centralized" ]; var tagline = taglines[Math.floor(Math.random() * taglines.length)]; document.getElementById('tagline').innerHTML = '--' + tagline; </script> <form id="search" action="/search/results"> <input id="search-text" name="search" placeholder="Type / to search entire site…" autocomplete="off" type="text" /> </form> <div id="search-results"></div> </header> </div> <div class="inner"> <div id="content-wrapper"> <div tabindex="1" class="sidebar-btn"></div> <aside class="sidebar" id="sidebar"> <nav> <ul> <li> <a href="/about">About</a> <ul> </ul> </li> <li> <a href="/doc" class="active">Documentation</a> <ul class="expanded"> <li> <a href="/docs">Reference</a> </li> <li> <a href="/book" class="active">Book</a> </li> <li> <a href="/videos">Videos</a> </li> <li> <a href="/doc/ext">External Links</a> </li> </ul> </li> <li> <a href="/downloads">Downloads</a> <ul > <li> <a href="/downloads/guis">GUI Clients</a> </li> <li> <a href="/downloads/logos">Logos</a> </li> </ul> </li> <li> <a href="/community">Community</a> </li> </ul> <hr class="sidebar"> <p> This book is available in <a href="/book/en/v2/Git-Basics-Working-with-Remotes">English</a>. </p> <p> Full translation available in <table> <tr><td><a href="/book/az/v2/Git%e2%80%99in-%c6%8fsaslar%c4%b1-Uzaqdan-%c4%b0%c5%9fl%c9%99m%c9%99k">azərbaycan dili</a>,</td></tr> <tr><td><a href="/book/bg/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8-%d0%bd%d0%b0-Git-%d0%a0%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%be%d1%82%d0%b4%d0%b0%d0%bb%d0%b5%d1%87%d0%b5%d0%bd%d0%b8-%d1%85%d1%80%d0%b0%d0%bd%d0%b8%d0%bb%d0%b8%d1%89%d0%b0">български език</a>,</td></tr> <tr><td><a href="/book/de/v2/Git-Grundlagen-Mit-Remotes-arbeiten">Deutsch</a>,</td></tr> <tr><td><a href="/book/es/v2/Fundamentos-de-Git-Trabajar-con-Remotos">Español</a>,</td></tr> <tr><td><a href="/book/fr/v2/Les-bases-de-Git-Travailler-avec-des-d%c3%a9p%c3%b4ts-distants">Français</a>,</td></tr> <tr><td><a href="/book/gr">Ελληνικά</a>,</td></tr> <tr><td><a href="/book/ja/v2/Git-%e3%81%ae%e5%9f%ba%e6%9c%ac-%e3%83%aa%e3%83%a2%e3%83%bc%e3%83%88%e3%81%a7%e3%81%ae%e4%bd%9c%e6%a5%ad">日本語</a>,</td></tr> <tr><td><a href="/book/ko/v2/Git%ec%9d%98-%ea%b8%b0%ec%b4%88-%eb%a6%ac%eb%aa%a8%ed%8a%b8-%ec%a0%80%ec%9e%a5%ec%86%8c">한국어</a>,</td></tr> <tr><td><a href="/book/nl/v2/Git-Basics-Werken-met-remotes">Nederlands</a>,</td></tr> <tr><td><a href="/book/ru/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d1%8b-Git-%d0%a0%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d1%83%d0%b4%d0%b0%d0%bb%d1%91%d0%bd%d0%bd%d1%8b%d0%bc%d0%b8-%d1%80%d0%b5%d0%bf%d0%be%d0%b7%d0%b8%d1%82%d0%be%d1%80%d0%b8%d1%8f%d0%bc%d0%b8">Русский</a>,</td></tr> <tr><td><a href="/book/sl/v2/Osnove-Git-Delo-z-daljavami">Slovenščina</a>,</td></tr> <tr><td><a href="/book/tl/v2/Mga-Pangunahing-Kaalaman-sa-Git-Paggawa-gamit-ang-mga-Remote">Tagalog</a>,</td></tr> <tr><td><a href="/book/uk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8-Git-%d0%92%d0%b7%d0%b0%d1%94%d0%bc%d0%be%d0%b4%d1%96%d1%8f-%d0%b7-%d0%b2%d1%96%d0%b4%d0%b4%d0%b0%d0%bb%d0%b5%d0%bd%d0%b8%d0%bc%d0%b8-%d1%81%d1%85%d0%be%d0%b2%d0%b8%d1%89%d0%b0%d0%bc%d0%b8">Українська</a></td></tr> <tr><td><a href="/book/zh/v2/Git-%e5%9f%ba%e7%a1%80-%e8%bf%9c%e7%a8%8b%e4%bb%93%e5%ba%93%e7%9a%84%e4%bd%bf%e7%94%a8">简体中文</a>,</td></tr> </table> </p> <p> Partial translations available in <table> <tr><td><a href="/book/cs/v2/Z%c3%a1klady-pr%c3%a1ce-se-syst%c3%a9mem-Git-Pr%c3%a1ce-se-vzd%c3%a1len%c3%bdmi-repozit%c3%a1%c5%99i">Čeština</a>,</td></tr> <tr><td><a href="/book/mk/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b8%d1%82%d0%b5-%d0%bd%d0%b0-Git-Working-with-Remotes">Македонски</a>,</td></tr> <tr><td><a href="/book/pl/v2/Podstawy-Gita-Praca-ze-zdalnym-repozytorium">Polski</a>,</td></tr> <tr><td><a href="/book/sr/v2/%d0%9e%d1%81%d0%bd%d0%be%d0%b2%d0%b5-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d0%b0-%d0%93%d0%b8%d1%82-%d0%a0%d0%b0%d0%b4-%d1%81%d0%b0-%d1%83%d0%b4%d0%b0%d1%99%d0%b5%d0%bd%d0%b8%d0%bc-%d1%80%d0%b5%d0%bf%d0%be%d0%b7%d0%b8%d1%82%d0%be%d1%80%d0%b8%d1%98%d1%83%d0%bc%d0%b8%d0%bc%d0%b0">Српски</a>,</td></tr> <tr><td><a href="/book/uz/v2/Git-%d0%b0%d1%81%d0%be%d1%81%d0%bb%d0%b0%d1%80%d0%b8-%d0%a3%d0%b7%d0%be%d2%9b-%d0%bc%d0%b0%d1%81%d0%be%d1%84%d0%b0%d0%b4%d0%b0%d0%b3%d0%b8-%d0%be%d0%bc%d0%b1%d0%be%d1%80%d0%bb%d0%b0%d1%80-%d0%b1%d0%b8%d0%bb%d0%b0%d0%bd-%d0%b8%d1%88%d0%bb%d0%b0%d1%88">Ўзбекча</a>,</td></tr> <tr><td><a href="/book/zh-tw/v2/Git-%e5%9f%ba%e7%a4%8e-%e8%88%87%e9%81%a0%e7%ab%af%e5%8d%94%e5%90%8c%e5%b7%a5%e4%bd%9c">繁體中文</a>,</td></tr> </table> </p> <p> Translations started for <table> <tr><td><a href="/book/be/v2/Git-Basics-Working-with-Remotes">Беларуская</a>,</td></tr> <tr><td><a href="/book/fa/v2/%d9%85%d9%82%d8%af%d9%85%d8%a7%d8%aa-%da%af%db%8c%d8%aa-%da%a9%d8%a7%d8%b1-%d8%a8%d8%a7-%d8%b1%db%8c%d9%85%d9%88%d8%aa%e2%80%8c%d9%87%d8%a7" dir="rtl">فارسی</a>,</td></tr> <tr><td><a href="/book/id/v2/Git-Basics-Working-with-Remotes">Indonesian</a>,</td></tr> <tr><td><a href="/book/it/v2/Git-Basics-Working-with-Remotes">Italiano</a>,</td></tr> <tr><td><a href="/book/ms/v2/Git-Basics-Working-with-Remotes">Bahasa Melayu</a>,</td></tr> <tr><td><a href="/book/pt-br/v2/Fundamentos-de-Git-Trabalhando-de-Forma-Remota">Português (Brasil)</a>,</td></tr> <tr><td><a href="/book/pt-pt/v2/No%c3%a7%c3%b5es-B%c3%a1sicas-do-Git-Working-with-Remotes">Português (Portugal)</a>,</td></tr> <tr><td><a href="/book/sv/v2/Grunder-i-Git-Jobba-med-fj%c3%a4rrf%c3%b6rvar">Svenska</a>,</td></tr> <tr><td><a href="/book/tr/v2/Git-Temelleri-Uzak-Repo-ile-%c3%87al%c4%b1%c5%9fmak">Türkçe</a>.</td></tr> </table> </p> <hr class="sidebar"/> <p> The source of this book is <a href="https://github.com/progit/progit2-pt-br">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/pt-br/v2/Come%c3%a7ando-Sobre-Controle-de-Vers%c3%a3o">Começando</a></h2> <ol> <li> 1.1 <a href="/book/pt-br/v2/Come%c3%a7ando-Sobre-Controle-de-Vers%c3%a3o">Sobre Controle de Versão</a> </li> <li> 1.2 <a href="/book/pt-br/v2/Come%c3%a7ando-Uma-Breve-Hist%c3%b3ria-do-Git">Uma Breve História do Git</a> </li> <li> 1.3 <a href="/book/pt-br/v2/Come%c3%a7ando-O-B%c3%a1sico-do-Git">O Básico do Git</a> </li> <li> 1.4 <a href="/book/pt-br/v2/Come%c3%a7ando-A-Linha-de-Comando">A Linha de Comando</a> </li> <li> 1.5 <a href="/book/pt-br/v2/Come%c3%a7ando-Instalando-o-Git">Instalando o Git</a> </li> <li> 1.6 <a href="/book/pt-br/v2/Come%c3%a7ando-Configura%c3%a7%c3%a3o-Inicial-do-Git">Configuração Inicial do Git</a> </li> <li> 1.7 <a href="/book/pt-br/v2/Come%c3%a7ando-Pedindo-Ajuda">Pedindo Ajuda</a> </li> <li> 1.8 <a href="/book/pt-br/v2/Come%c3%a7ando-Sum%c3%a1rio">Sumário</a> </li> </ol> </li> <li class='chapter'> <h2>2. <a href="/book/pt-br/v2/Fundamentos-de-Git-Obtendo-um-Reposit%c3%b3rio-Git">Fundamentos de Git</a></h2> <ol> <li> 2.1 <a href="/book/pt-br/v2/Fundamentos-de-Git-Obtendo-um-Reposit%c3%b3rio-Git">Obtendo um Repositório Git</a> </li> <li> 2.2 <a href="/book/pt-br/v2/Fundamentos-de-Git-Gravando-Altera%c3%a7%c3%b5es-em-Seu-Reposit%c3%b3rio">Gravando Alterações em Seu Repositório</a> </li> <li> 2.3 <a href="/book/pt-br/v2/Fundamentos-de-Git-Vendo-o-hist%c3%b3rico-de-Commits">Vendo o histórico de Commits</a> </li> <li> 2.4 <a href="/book/pt-br/v2/Fundamentos-de-Git-Desfazendo-coisas">Desfazendo coisas</a> </li> <li> 2.5 <a href="/book/pt-br/v2/Fundamentos-de-Git-Trabalhando-de-Forma-Remota" class="active">Trabalhando de Forma Remota</a> </li> <li> 2.6 <a href="/book/pt-br/v2/Fundamentos-de-Git-Criando-Tags">Criando Tags</a> </li> <li> 2.7 <a href="/book/pt-br/v2/Fundamentos-de-Git-Apelidos-Git">Apelidos Git</a> </li> <li> 2.8 <a href="/book/pt-br/v2/Fundamentos-de-Git-Sum%c3%a1rio">Sumário</a> </li> </ol> </li> <li class='chapter'> <h2>3. <a href="/book/pt-br/v2/Branches-no-Git-Branches-em-poucas-palavras">Branches no Git</a></h2> <ol> <li> 3.1 <a href="/book/pt-br/v2/Branches-no-Git-Branches-em-poucas-palavras">Branches em poucas palavras</a> </li> <li> 3.2 <a href="/book/pt-br/v2/Branches-no-Git-O-b%c3%a1sico-de-Ramifica%c3%a7%c3%a3o-Branch-e-Mesclagem-Merge">O básico de Ramificação (Branch) e Mesclagem (Merge)</a> </li> <li> 3.3 <a href="/book/pt-br/v2/Branches-no-Git-Gest%c3%a3o-de-Branches">Gestão de Branches</a> </li> <li> 3.4 <a href="/book/pt-br/v2/Branches-no-Git-Fluxo-de-Branches">Fluxo de Branches</a> </li> <li> 3.5 <a href="/book/pt-br/v2/Branches-no-Git-Branches-remotos">Branches remotos</a> </li> <li> 3.6 <a href="/book/pt-br/v2/Branches-no-Git-Rebase">Rebase</a> </li> <li> 3.7 <a href="/book/pt-br/v2/Branches-no-Git-Sum%c3%a1rio">Sumário</a> </li> </ol> </li> <li class='chapter'> <h2>4. <a href="/book/pt-br/v2/Git-no-servidor-Os-Protocolos">Git no servidor</a></h2> <ol> <li> 4.1 <a href="/book/pt-br/v2/Git-no-servidor-Os-Protocolos">Os Protocolos</a> </li> <li> 4.2 <a href="/book/pt-br/v2/Git-no-servidor-Getting-Git-on-a-Server">Getting Git on a Server</a> </li> <li> 4.3 <a href="/book/pt-br/v2/Git-no-servidor-Gerando-Sua-Chave-P%c3%bablica-SSH">Gerando Sua Chave Pública SSH</a> </li> <li> 4.4 <a href="/book/pt-br/v2/Git-no-servidor-Setting-Up-the-Server">Setting Up the Server</a> </li> <li> 4.5 <a href="/book/pt-br/v2/Git-no-servidor-Git-Daemon">Git Daemon</a> </li> <li> 4.6 <a href="/book/pt-br/v2/Git-no-servidor-Smart-HTTP">Smart HTTP</a> </li> <li> 4.7 <a href="/book/pt-br/v2/Git-no-servidor-GitWeb">GitWeb</a> </li> <li> 4.8 <a href="/book/pt-br/v2/Git-no-servidor-GitLab">GitLab</a> </li> <li> 4.9 <a href="/book/pt-br/v2/Git-no-servidor-Third-Party-Hosted-Options">Third Party Hosted Options</a> </li> <li> 4.10 <a href="/book/pt-br/v2/Git-no-servidor-Sum%c3%a1rio">Sumário</a> </li> </ol> </li> <li class='chapter'> <h2>5. <a href="/book/pt-br/v2/Distributed-Git-Fluxos-de-Trabalho-Distribu%c3%addos">Distributed Git</a></h2> <ol> <li> 5.1 <a href="/book/pt-br/v2/Distributed-Git-Fluxos-de-Trabalho-Distribu%c3%addos">Fluxos de Trabalho Distribuídos</a> </li> <li> 5.2 <a href="/book/pt-br/v2/Distributed-Git-Contribuindo-com-um-Projeto">Contribuindo com um Projeto</a> </li> <li> 5.3 <a href="/book/pt-br/v2/Distributed-Git-Maintaining-a-Project">Maintaining a Project</a> </li> <li> 5.4 <a href="/book/pt-br/v2/Distributed-Git-Summary">Summary</a> </li> </ol> </li> </ol> </div> <div class='column-middle'> <ol class='book-toc'> <li class='chapter'> <h2>6. <a href="/book/pt-br/v2/GitHub-Configurando-uma-conta">GitHub</a></h2> <ol> <li> 6.1 <a href="/book/pt-br/v2/GitHub-Configurando-uma-conta">Configurando uma conta</a> </li> <li> 6.2 <a href="/book/pt-br/v2/GitHub-Contribuindo-em-um-projeto">Contribuindo em um projeto</a> </li> <li> 6.3 <a href="/book/pt-br/v2/GitHub-Maintaining-a-Project">Maintaining a Project</a> </li> <li> 6.4 <a href="/book/pt-br/v2/GitHub-Managing-an-organization">Managing an organization</a> </li> <li> 6.5 <a href="/book/pt-br/v2/GitHub-Scripting-GitHub">Scripting GitHub</a> </li> <li> 6.6 <a href="/book/pt-br/v2/GitHub-Summary">Summary</a> </li> </ol> </li> <li class='chapter'> <h2>7. <a href="/book/pt-br/v2/Git-Tools-Revision-Selection">Git Tools</a></h2> <ol> <li> 7.1 <a href="/book/pt-br/v2/Git-Tools-Revision-Selection">Revision Selection</a> </li> <li> 7.2 <a href="/book/pt-br/v2/Git-Tools-Interactive-Staging">Interactive Staging</a> </li> <li> 7.3 <a href="/book/pt-br/v2/Git-Tools-Stashing-and-Cleaning">Stashing and Cleaning</a> </li> <li> 7.4 <a href="/book/pt-br/v2/Git-Tools-Signing-Your-Work">Signing Your Work</a> </li> <li> 7.5 <a href="/book/pt-br/v2/Git-Tools-Searching">Searching</a> </li> <li> 7.6 <a href="/book/pt-br/v2/Git-Tools-Rewriting-History">Rewriting History</a> </li> <li> 7.7 <a href="/book/pt-br/v2/Git-Tools-Reset-Demystified">Reset Demystified</a> </li> <li> 7.8 <a href="/book/pt-br/v2/Git-Tools-Advanced-Merging">Advanced Merging</a> </li> <li> 7.9 <a href="/book/pt-br/v2/Git-Tools-Rerere">Rerere</a> </li> <li> 7.10 <a href="/book/pt-br/v2/Git-Tools-Debugging-with-Git">Debugging with Git</a> </li> <li> 7.11 <a href="/book/pt-br/v2/Git-Tools-Submodules">Submodules</a> </li> <li> 7.12 <a href="/book/pt-br/v2/Git-Tools-Bundling">Bundling</a> </li> <li> 7.13 <a href="/book/pt-br/v2/Git-Tools-Replace">Replace</a> </li> <li> 7.14 <a href="/book/pt-br/v2/Git-Tools-Credential-Storage">Credential Storage</a> </li> <li> 7.15 <a href="/book/pt-br/v2/Git-Tools-Summary">Summary</a> </li> </ol> </li> <li class='chapter'> <h2>8. <a href="/book/pt-br/v2/Customizing-Git-Git-Configuration">Customizing Git</a></h2> <ol> <li> 8.1 <a href="/book/pt-br/v2/Customizing-Git-Git-Configuration">Git Configuration</a> </li> <li> 8.2 <a href="/book/pt-br/v2/Customizing-Git-Git-Attributes">Git Attributes</a> </li> <li> 8.3 <a href="/book/pt-br/v2/Customizing-Git-Git-Hooks">Git Hooks</a> </li> <li> 8.4 <a href="/book/pt-br/v2/Customizing-Git-An-Example-Git-Enforced-Policy">An Example Git-Enforced Policy</a> </li> <li> 8.5 <a href="/book/pt-br/v2/Customizing-Git-Summary">Summary</a> </li> </ol> </li> <li class='chapter'> <h2>9. <a href="/book/pt-br/v2/Git-and-Other-Systems-Git-as-a-Client">Git and Other Systems</a></h2> <ol> <li> 9.1 <a href="/book/pt-br/v2/Git-and-Other-Systems-Git-as-a-Client">Git as a Client</a> </li> <li> 9.2 <a href="/book/pt-br/v2/Git-and-Other-Systems-Migrating-to-Git">Migrating to Git</a> </li> <li> 9.3 <a href="/book/pt-br/v2/Git-and-Other-Systems-Summary">Summary</a> </li> </ol> </li> <li class='chapter'> <h2>10. <a href="/book/pt-br/v2/Funcionamento-Interno-do-Git-Encanamento-e-Porcelana">Funcionamento Interno do Git</a></h2> <ol> <li> 10.1 <a href="/book/pt-br/v2/Funcionamento-Interno-do-Git-Encanamento-e-Porcelana">Encanamento e Porcelana</a> </li> <li> 10.2 <a href="/book/pt-br/v2/Funcionamento-Interno-do-Git-Objetos-do-Git">Objetos do Git</a> </li> <li> 10.3 <a href="/book/pt-br/v2/Funcionamento-Interno-do-Git-Refer%c3%aancias-do-Git">Referências do Git</a> </li> <li> 10.4 <a href="/book/pt-br/v2/Funcionamento-Interno-do-Git-Packfiles">Packfiles</a> </li> <li> 10.5 <a href="/book/pt-br/v2/Funcionamento-Interno-do-Git-The-Refspec">The Refspec</a> </li> <li> 10.6 <a href="/book/pt-br/v2/Funcionamento-Interno-do-Git-Transfer-Protocols">Transfer Protocols</a> </li> <li> 10.7 <a href="/book/pt-br/v2/Funcionamento-Interno-do-Git-Maintenance-and-Data-Recovery">Maintenance and Data Recovery</a> </li> <li> 10.8 <a href="/book/pt-br/v2/Funcionamento-Interno-do-Git-Vari%c3%a1veis-de-ambiente">Variáveis de ambiente</a> </li> <li> 10.9 <a href="/book/pt-br/v2/Funcionamento-Interno-do-Git-Sum%c3%a1rio">Sumário</a> </li> </ol> </li> </ol> </div> <div class='column-right'> <ol class='book-toc'> <li class='chapter'> <h2>A1. <a href="/book/pt-br/v2/Appendix-A:-Git-em-Outros-Ambientes-Graphical-Interfaces">Appendix A: Git em Outros Ambientes</a></h2> <ol> <li> A1.1 <a href="/book/pt-br/v2/Appendix-A:-Git-em-Outros-Ambientes-Graphical-Interfaces">Graphical Interfaces</a> </li> <li> A1.2 <a href="/book/pt-br/v2/Appendix-A:-Git-em-Outros-Ambientes-Git-in-Visual-Studio">Git in Visual Studio</a> </li> <li> A1.3 <a href="/book/pt-br/v2/Appendix-A:-Git-em-Outros-Ambientes-Git-in-Eclipse">Git in Eclipse</a> </li> <li> A1.4 <a href="/book/pt-br/v2/Appendix-A:-Git-em-Outros-Ambientes-Git-in-Bash">Git in Bash</a> </li> <li> A1.5 <a href="/book/pt-br/v2/Appendix-A:-Git-em-Outros-Ambientes-Git-in-Zsh">Git in Zsh</a> </li> <li> A1.6 <a href="/book/pt-br/v2/Appendix-A:-Git-em-Outros-Ambientes-Git-in-Powershell">Git in Powershell</a> </li> <li> A1.7 <a href="/book/pt-br/v2/Appendix-A:-Git-em-Outros-Ambientes-Resumo">Resumo</a> </li> </ol> </li> <li class='chapter'> <h2>A2. <a href="/book/pt-br/v2/Appendix-B:-Embedding-Git-in-your-Applications-Command-line-Git">Appendix B: Embedding Git in your Applications</a></h2> <ol> <li> A2.1 <a href="/book/pt-br/v2/Appendix-B:-Embedding-Git-in-your-Applications-Command-line-Git">Command-line Git</a> </li> <li> A2.2 <a href="/book/pt-br/v2/Appendix-B:-Embedding-Git-in-your-Applications-Libgit2">Libgit2</a> </li> <li> A2.3 <a href="/book/pt-br/v2/Appendix-B:-Embedding-Git-in-your-Applications-JGit">JGit</a> </li> </ol> </li> <li class='chapter'> <h2>A3. <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-Setup-and-Config">Appendix C: Git Commands</a></h2> <ol> <li> A3.1 <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-Setup-and-Config">Setup and Config</a> </li> <li> A3.2 <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-Getting-and-Creating-Projects">Getting and Creating Projects</a> </li> <li> A3.3 <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-Basic-Snapshotting">Basic Snapshotting</a> </li> <li> A3.4 <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-Branching-and-Merging">Branching and Merging</a> </li> <li> A3.5 <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-Sharing-and-Updating-Projects">Sharing and Updating Projects</a> </li> <li> A3.6 <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-Inspection-and-Comparison">Inspection and Comparison</a> </li> <li> A3.7 <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-Debugging">Debugging</a> </li> <li> A3.8 <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-Patching">Patching</a> </li> <li> A3.9 <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-Email">Email</a> </li> <li> A3.10 <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-External-Systems">External Systems</a> </li> <li> A3.11 <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-Administration">Administration</a> </li> <li> A3.12 <a href="/book/pt-br/v2/Appendix-C:-Git-Commands-Plumbing-Commands">Plumbing Commands</a> </li> </ol> </li> </ol> </div> </div> </div> <span class="light" id="edition"> 2nd Edition </span> </div> <div id="main" data-pagefind-filter="category:book" data-pagefind-meta="category:Book" data-pagefind-weight="0.05" data-pagefind-body class="book edition2"> <h1>2.5 Fundamentos de Git - Trabalhando de Forma Remota</h1> <div> <h2 id="r_remote_repos">Trabalhando de Forma Remota</h2> <div class="paragraph"> <p>Para colaborar com qualquer projeto Git, você precisará saber como gerenciar seus repositórios remotos. Repositórios remotos são versões de seu repositório hospedado na Internet ou em uma rede qualquer. Você pode ter vários deles, cada um dos quais geralmente é ou somente leitura ou leitura/escrita. Colaborar com outras pessoas envolve o gerenciamento destes repositórios remotos, fazer <em>pushing</em>(atualizar) e <em>pulling</em>(obter) de dados para e deles quando você precisar compartilhar seu trabalho. Gerenciar repositórios remotos inclui saber como adicioná-los remotamente, remover aqueles que não são mais válidos, gerenciar vários <em>branches</em>(ramos) e definí-los como rastreados ou não e muito mais. Nesta seção, abordaremos algumas destas habilidades de gereciamento remoto.</p> </div> <div class="sect3"> <h3 id="_exibindo_seus_repositórios_remotos">Exibindo seus repositórios remotos</h3> <div class="paragraph"> <p>Para ver quais servidores remotos você configurou, você pode executar o comando <code>git remote</code>. Ele lista os nomes abreviados de cada repositório remoto manejado que você especificou. Se você clonou seu repositório, você deve pelo menos ver <em>origin</em>(origem) – que é o nome padrão dado pelo Git ao servidor que você clonou:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git clone https://github.com/schacon/ticgit Cloning into 'ticgit'... remote: Reusing existing pack: 1857, done. remote: Total 1857 (delta 0), reused 0 (delta 0) Receiving objects: 100% (1857/1857), 374.35 KiB | 268.00 KiB/s, done. Resolving deltas: 100% (772/772), done. Checking connectivity... done. $ cd ticgit $ git remote origin</code></pre> </div> </div> <div class="paragraph"> <p>Você também pode especificar <code>-v</code>, que mostra as URLs que o Git tem armazenado pelo nome abreviado a ser usado para ler ou gravar naquele repositório remoto:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote -v origin https://github.com/schacon/ticgit (fetch) origin https://github.com/schacon/ticgit (push)</code></pre> </div> </div> <div class="paragraph"> <p>Se você tem mais de um repositório remoto, o comando lista todos eles. Por exemplo, um repositório com diversos repositórios remotos para trabalhar com vários colaboradores pode ser algo parecido com isto:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ cd grit $ git remote -v bakkdoor https://github.com/bakkdoor/grit (fetch) bakkdoor https://github.com/bakkdoor/grit (push) cho45 https://github.com/cho45/grit (fetch) cho45 https://github.com/cho45/grit (push) defunkt https://github.com/defunkt/grit (fetch) defunkt https://github.com/defunkt/grit (push) koke git://github.com/koke/grit.git (fetch) koke git://github.com/koke/grit.git (push) origin git@github.com:mojombo/grit.git (fetch) origin git@github.com:mojombo/grit.git (push)</code></pre> </div> </div> <div class="paragraph"> <p>Isto significa que nós podemos obter(<em>pull</em>) contribuições de qualquer um desses usuários muito facilmente. Nós podemos, adicionalmente, ter a permissão de atualizar(<em>push</em>) um ou mais destes, embora não possamos dizer isso nesse caso.</p> </div> <div class="paragraph"> <p>Note que estes repositórios remotos usam uma variedade de protocolos e nós falaremos mais sobre isso em <a href="/book/pt-br/v2/ch00/r_git_on_the_server">Getting Git on a Server</a>.</p> </div> </div> <div class="sect3"> <h3 id="_adicionando_repositórios_remotos">Adicionando Repositórios Remotos</h3> <div class="paragraph"> <p>Nós mencionamos e demos algumas demonstrações de como o comando <code>clone</code> implicitamente adiciona a origem(<code>origin</code>) remota para você. Aqui está como adicionar um novo repositório remoto explicitamente. Para adicionar um novo repositório Git remoto como um nome curto que você pode referenciar facilmente, execute <code>git remote add <shortname> <url></code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote origin $ git remote add pb https://github.com/paulboone/ticgit $ git remote -v origin https://github.com/schacon/ticgit (fetch) origin https://github.com/schacon/ticgit (push) pb https://github.com/paulboone/ticgit (fetch) pb https://github.com/paulboone/ticgit (push)</code></pre> </div> </div> <div class="paragraph"> <p>Agora você pode usar a string <code>pb</code> na linha de comando no lugar de uma URL completa. Por exemplo, se você quiser buscar toda a informação que Paul tem, mas você ainda não tem em seu repositório, você pode executar <code>git fetch pb</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git fetch pb remote: Counting objects: 43, done. remote: Compressing objects: 100% (36/36), done. remote: Total 43 (delta 10), reused 31 (delta 5) Unpacking objects: 100% (43/43), done. From https://github.com/paulboone/ticgit * [new branch] master -> pb/master * [new branch] ticgit -> pb/ticgit</code></pre> </div> </div> <div class="paragraph"> <p>O <em>master branch</em>(ramo mestre) do Paul agora está acessível localmente como <code>pb/master</code> – você pode fundí-lo(<em>merge</em>) dentro de uma de suas ramificações(<em>branches</em>) ou você pode checar fora da ramificação local se você quiser inspecioná-lo. (Nós abordaremos o que são ramificações(<em>branches</em>) e como usá-las mais detalhadamente em <a href="/book/pt-br/v2/ch00/ch03-git-branching">[ch03-git-branching]</a>. )</p> </div> </div> <div class="sect3"> <h3 id="r_fetching_and_pulling">Buscando e Obtendo de seus Repositórios Remotos</h3> <div class="paragraph"> <p>Como você viu, para obter dados de seus projetos remotos, você pode executar:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git fetch [remote-name]</code></pre> </div> </div> <div class="paragraph"> <p>O comando vai até aquele projeto remoto e extrai todos os dados daquele projeto que você ainda não tem. Depois que você faz isso, você deve ter como referência todos as ramificações(<em>branches</em>) daquele repositório remoto, que você pode mesclar(<em>merge</em>) com o atual ou inspecionar a qualquer momento.</p> </div> <div class="paragraph"> <p>Se você clonar um repositório, o comando automaticamente adiciona àquele repositório remoto com o nome <code>origin</code>. Então, <code>git fetch origin</code> busca qualquer novo trabalho que tenha sido enviado para aquele servidor desde que você o clonou ou fez a última busca(<em>fetch</em>). É importante notar que o comando <code>git fetch</code> só baixa os dados para o seu repositório local - ele não é automaticamente mesclado(<em>merge</em>) com nenhum trabalho seu ou modificação que você esteja trabalhando atualmente. Você deve mesclá-los manualmente dentro de seu trabalho quando você estiver pronto.</p> </div> <div class="paragraph"> <p>Se o <code>branch</code> atual é configurando para rastrear um <code>branch</code> remoto (veja a próxima seção e <a href="/book/pt-br/v2/ch00/ch03-git-branching">[ch03-git-branching]</a> para mais informação), você pode usar o comando <code>git pull</code> para buscar(<em>fetch</em>) e então mesclar(<em>merge</em>) automaticamente aquele <code>branch</code> remoto dentro do seu <code>branch</code> atual. Este pode ser um fluxo de trabalho mais fácil e mais confortável para você, e por padrão, o comando <code>git clone</code> automaticamente configura a sua <code>master branch</code> local para rastrear a <code>master branch</code> remota ou qualquer que seja o nome do <code>branch</code> padrão no servidor de onde você o clonou. Executar <code>git pull</code> comumente busca os dados do servidor de onde você originalmente clonou e automaticamente tenta mesclá-lo dentro do código que você está atualmente trabalhando.</p> </div> </div> <div class="sect3"> <h3 id="r_pushing_remotes">Pushing to Your Remotes</h3> <div class="paragraph"> <p>Quando você tem seu projeto em um ponto que deseja compartilhar, é necessário enviá-lo para o servidor remoto. O comando para isso é simples: <code>git push [remote-name] [branch-name]</code>. Se você quiser enviar sua ramificacão (branch) master para o servidor <code>origin</code> (novamente, a clonagem geralmente configura ambos os nomes para você automaticamente), então você pode executar isso para enviar quaisquer commits feitos para o servidor:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git push origin master</code></pre> </div> </div> <div class="paragraph"> <p>Este comando funciona apenas se você clonou de um servidor ao qual você tem acesso de escrita (write-access) e se ninguém mais utilizou o comando push nesse meio-tempo. Se você e outra pessoa clonarem o repositório ao mesmo tempo e ela utilizar o comando push e, em seguida, você tentar utilizar, seu envio será rejeitado. Primeiro você terá que atualizar localmente, incorporando o trabalho dela ao seu, só assim você poderá utilizar o comando push. Veja <a href="/book/pt-br/v2/ch00/ch03-git-branching">[ch03-git-branching]</a> para informações mais detalhadas sobre como enviar para servidores remotos.</p> </div> </div> <div class="sect3"> <h3 id="r_inspecting_remote">Inspecionando o Servidor Remoto</h3> <div class="paragraph"> <p>Se você quiser ver mais informações sobre um servidor remoto em particular, você pode usar o comando <code>git remote show [nome-remoto]</code>. Ao executar este comando com um nome abreviado específico, como <code>origin</code>, obterá algo assim:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote show origin * remote origin Fetch URL: https://github.com/schacon/ticgit Push URL: https://github.com/schacon/ticgit HEAD branch: master Remote branches: master tracked dev-branch tracked Local branch configured for 'git pull': master merges with remote master Local ref configured for 'git push': master pushes to master (up to date)</code></pre> </div> </div> <div class="paragraph"> <p>Ele lista a URL para o repositório remoto, bem como as informações de rastreamento do branch. O comando, de forma útil, comunica que se você estiver no branch master e executar <code>git pull</code>, ele irá mesclar (merge) automaticamente no branch master do servidor após buscar (fetch) todas as referências remotas. Ele também lista todas as referências remotas recebidas.</p> </div> <div class="paragraph"> <p>Esse é um exemplo simples que você provavelmente encontrará. Quando você usa o Git mais intensamente, no entanto, pode ver muito mais informações com <code>git remote show</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote show origin * remote origin URL: https://github.com/my-org/complex-project Fetch URL: https://github.com/my-org/complex-project Push URL: https://github.com/my-org/complex-project HEAD branch: master Remote branches: master tracked dev-branch tracked markdown-strip tracked issue-43 new (next fetch will store in remotes/origin) issue-45 new (next fetch will store in remotes/origin) refs/remotes/origin/issue-11 stale (use 'git remote prune' to remove) Local branches configured for 'git pull': dev-branch merges with remote dev-branch master merges with remote master Local refs configured for 'git push': dev-branch pushes to dev-branch (up to date) markdown-strip pushes to markdown-strip (up to date) master pushes to master (up to date)</code></pre> </div> </div> <div class="paragraph"> <p>Este comando mostra para qual ramificação (branch) é enviada automaticamente quando você executa <code>git push</code> enquanto em certas ramificações. Ele também mostra quais branches remotos do servidor você ainda não tem, quais você tem que foram removidos do servidor e várias branches locais que são capazes de se fundir automaticamente com seu branch de rastreamento remoto quando você executa <code>git pull</code>.</p> </div> </div> <div class="sect3"> <h3 id="_removendo_e_renomeando_remotes">Removendo e Renomeando Remotes</h3> <div class="paragraph"> <p>Você pode utilizar o <code>git remote rename</code> para alterar o nome curto de servidores remotos. Por exemplo, se você deseja renomear <code>pb</code> para` paul`, você pode fazer isso com <code>git remote rename</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote rename pb paul $ git remote origin paul</code></pre> </div> </div> <div class="paragraph"> <p>Vale a pena mencionar que isso muda todos os nomes de ramificações de rastreamento remoto também. O que costumava ser referenciado em <code>pb/master</code> agora está em <code>paul/master</code>.</p> </div> <div class="paragraph"> <p>Se você quiser remover um servidor remoto por algum motivo - e você anteriormente moveu o servidor ou não está mais usando um em particular, ou talvez um contribuidor não esteja mais contribuindo - você pode usar <code>git remote remove</code> ou <code>git remote rm</code>:</p> </div> <div class="listingblock"> <div class="content"> <pre class="highlight"><code class="language-console" data-lang="console">$ git remote remove paul $ git remote origin</code></pre> </div> </div> </div> <div id="nav"><a href="/book/pt-br/v2/Fundamentos-de-Git-Desfazendo-coisas">prev</a> | <a href="/book/pt-br/v2/Fundamentos-de-Git-Criando-Tags">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>