{"meta":{"title":"Contribuindo com um projeto","intro":"Aprenda a contribuir para um projeto por meio da bifurcação.","product":"Introdução","breadcrumbs":[{"href":"/pt/get-started","title":"Introdução"},{"href":"/pt/get-started/exploring-projects-on-github","title":"Explorar projetos"},{"href":"/pt/get-started/exploring-projects-on-github/contributing-to-a-project","title":"Contribuir com um projeto"}],"documentType":"article"},"body":"# Contribuindo com um projeto\n\nAprenda a contribuir para um projeto por meio da bifurcação.\n\nContribuir com um projeto no GitHub é uma habilidade essencial para desenvolvedores e colaboradores que trabalham juntos para alcançar metas compartilhadas. Quer você esteja corrigindo bugs, adicionando recursos ou aprimorando a documentação, o processo de contribuição garante a colaboração estruturada e eficiente.\n\nAo seguir o fluxo do GitHub de fazer fork de repositórios, criar branches e enviar pull requests, você pode propor alterações em um projeto e obter feedback sem interromper o trabalho de outras pessoas.\n\nEste guia fornece instruções sobre como contribuir para um projeto usando a interface do usuário do GitHub e a linha de comando. Para obter mais informações sobre como contribuir com GitHub Desktop, consulte [Clonar e realizar fork de repositórios com o GitHub Desktop](/pt/desktop/adding-and-cloning-repositories/cloning-and-forking-repositories-from-github-desktop). Para obter o mesmo com GitHub CLI (Interface de Linha de Comando), consulte [Início rápido da CLI GitHub](/pt/github-cli/github-cli/quickstart).\n\n## Sobre a bifurcação\n\nSe você quiser contribuir com o projeto de outra pessoa, mas não tiver permissão para fazer alterações diretamente, poderá criar sua cópia do projeto, fazer atualizações e sugerir essas atualizações para inclusão no projeto principal. Este processo é frequentemente chamado de fluxo de trabalho \"fork e pull request\".\n\nQuando você cria sua cópia (ou \"fork\") de um projeto, é como criar um workspace que compartilha código com o projeto original. Isso é útil para projetos de código aberto ou quando você não tem permissão de escrita no projeto original.\n\nDepois de fazer alterações em sua cópia, você pode enviá-las como uma pull request, que é uma maneira de propor alterações de volta ao projeto principal. Para saber mais, confira [Fazer um fork de um repositório](/pt/pull-requests/collaborating-with-pull-requests/working-with-forks/fork-a-repo).\n\n## Criando sua cópia de um projeto\n\nEste tutorial usa [o projeto Spoon-Knife](https://github.com/octocat/Spoon-Knife), um repositório de teste hospedado no GitHub que permite testar o fluxo de trabalho da pull request e do fork.\n\n1. Navegue até o projeto `Spoon-Knife` em <https://github.com/octocat/Spoon-Knife>.\n2. No canto superior direito da página, clique em **Fork**.\n\n   ![Captura de tela da página principal de um repositório. Um botão, rotulado com um ícone de fork e \"Fork 59.3k\", está contornado em laranja escuro.](/assets/images/help/repository/fork-button.png)\n3. Em \"Proprietário\", selecione o menu suspenso e clique em um proprietário do repositório com fork.\n   > \\[!NOTE] Se o nome de usuário estiver esmaecido, o fork já existe. Em vez disso, você deve atualizar o fork existente. Para saber mais, confira [Sincronizar uma bifurcação](/pt/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork#syncing-a-fork-branch-from-the-web-ui).\n4. Por padrão, os forks são nomeados da mesma forma que os repositórios upstream. Opcionalmente, para destacar ainda mais seu fork, no campo \"Nome do repositório\", digite um nome.\n5. Opcionalmente, no campo \"Descrição\", digite uma descrição do fork.\n6. Se desejar, selecione **Copiar somente o branch PADRÃO**.\n\n   Em muitos cenários de bifurcação, como contribuir para projetos de código aberto, você só precisa copiar o ramo padrão. Se você não selecionar essa opção, todos os branches serão copiados para o novo fork.\n7. Clique em **Criar bifurcação**.\n\n> \\[!NOTE]\n> Se você quiser copiar branches adicionais do repositório upstream, poderá fazê-lo na página **Branches**. Para saber mais, confira [Criar e excluir branches no repositório](/pt/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/creating-and-deleting-branches-within-your-repository).\n\n## Clonando um fork para o seu computador\n\nVocê fez um fork do repositório Spoon-Knife com sucesso, mas ele só existe no GitHub por enquanto. Para poder trabalhar no projeto, você deverá cloná-lo para o seu computador.\n\nVocê pode clonar o seu fork com a interface de linha de comando, GitHub CLI ou GitHub Desktop.\n\n1. No GitHub, acesse **seu fork** do repositório Spoon-Knife.\n\n2. Acima da lista de arquivos, clique em **<svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-code\" aria-label=\"code\" role=\"img\"><path d=\"m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z\"></path></svg> Code**.\n\n   ![Captura de tela da lista de arquivos na página de aterrissagem de um repositório. O botão \"Código\" está realçado com um contorno laranja escuro.](/assets/images/help/repository/code-button.png)\n\n3. Copie a URL do repositório.\n\n   * Para clonar o repositório usando HTTPS, em \"HTTPS\", clique em <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copy\" aria-label=\"Copy to clipboard\" role=\"img\"><path d=\"M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z\"></path><path d=\"M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z\"></path></svg>.\n   * Para clonar o repositório usando uma chave SSH, incluindo um certificado emitido pela autoridade de certificação SSH da sua organização, clique em **SSH** e em <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copy\" aria-label=\"Copy to clipboard\" role=\"img\"><path d=\"M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z\"></path><path d=\"M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z\"></path></svg>.\n   * Para clonar um repositório usando a GitHub CLI, clique em **GitHub CLI** e em <svg version=\"1.1\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" class=\"octicon octicon-copy\" aria-label=\"Copy to clipboard\" role=\"img\"><path d=\"M0 6.75C0 5.784.784 5 1.75 5h1.5a.75.75 0 0 1 0 1.5h-1.5a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-1.5a.75.75 0 0 1 1.5 0v1.5A1.75 1.75 0 0 1 9.25 16h-7.5A1.75 1.75 0 0 1 0 14.25Z\"></path><path d=\"M5 1.75C5 .784 5.784 0 6.75 0h7.5C15.216 0 16 .784 16 1.75v7.5A1.75 1.75 0 0 1 14.25 11h-7.5A1.75 1.75 0 0 1 5 9.25Zm1.75-.25a.25.25 0 0 0-.25.25v7.5c0 .138.112.25.25.25h7.5a.25.25 0 0 0 .25-.25v-7.5a.25.25 0 0 0-.25-.25Z\"></path></svg>.\n\n     ![Captura de tela do menu suspenso \"Código\". À direita da URL HTTPS do repositório, um ícone de cópia está contornado em laranja escuro.](/assets/images/help/repository/https-url-clone-cli.png)\n\n4. No Mac ou Linux, abra o Terminal. No Windows, abra o Git Bash.\n\n5. Altere o diretório de trabalho atual para o local em que deseja ter o diretório clonado.\n\n6. Escreva `git clone`e, em seguida, cole o URL que copiou anteriormente. Terá este formato, com seu nome de usuário do GitHub em vez de `YOUR-USERNAME`:\n\n   ```shell\n   git clone https://github.com/YOUR-USERNAME/Spoon-Knife\n   ```\n\n7. Pressione **Enter**. Seu clone local será criado.\n\n   ```shell\n   $ git clone https://github.com/YOUR-USERNAME/Spoon-Knife\n   > Cloning into `Spoon-Knife`...\n   > remote: Counting objects: 10, done.\n   > remote: Compressing objects: 100% (8/8), done.\n   > remove: Total 10 (delta 1), reused 10 (delta 1)\n   > Unpacking objects: 100% (10/10), done.\n   ```\n\n## Como criar um branch de trabalho\n\nAntes de fazer alterações no projeto, você deve criar um novo branch e fazer o checkout dele. Ao manter as alterações em seu próprio branch, você segue o fluxo de GitHub e garante que será mais fácil contribuir para o mesmo projeto novamente no futuro. Confira [fluxo de GitHub](/pt/get-started/using-github/github-flow#following-github-flow).\n\n```shell\ngit branch BRANCH-NAME\ngit checkout BRANCH-NAME\n```\n\n## Fazendo e enviando por push as alterações\n\nVá em frente e faça algumas alterações no projeto usando seu editor de texto favorito, como o [Visual Studio Code](https://code.visualstudio.com). Você pode, por exemplo, alterar o texto em `index.html` para adicionar seu nome de usuário do GitHub.\n\nQuando estiver pronto para enviar suas alterações, teste e faça commit das suas alterações.\n`git add .` informa o Git de que você deseja incluir todas as alterações no próximo commit.\n`git commit` cria um instantâneo dessas alterações.\n\n```shell\ngit add .\ngit commit -m \"a short description of the change\"\n```\n\nAo preparar e confirmar arquivos, você essencialmente diz ao Git: \"Tire um snapshot das minhas alterações\". Você pode continuar fazendo mais alterações e tirando mais snapshots de commit.\n\nNo momento, suas alterações existem apenas localmente. Quando estiver pronto para enviar suas alterações para GitHub, envie suas alterações para o repositório remoto.\n\n```shell\ngit push\n```\n\n## Fazendo um pull request\n\nCriar uma pull request é a última etapa para produzir um fork do projeto de outra pessoa. Quando você faz uma alteração benéfica e deseja propor isso ao repositório original, você cria um pull request para um mantenedor revisar.\n\nPara fazer isso, navegue até o repositório no GitHub em que o projeto está. Neste exemplo, ele estará em `https://github.com/<your_username>/Spoon-Knife`. Você verá um banner indicando que seu branch está um commit à frente de `octocat:main`. Clique em **Contribuir** e em **Abrir uma solicitação de pull**.\n\nO GitHub levará você a uma página que mostra as diferenças entre seu fork e o repositório `octocat/Spoon-Knife`. Clique em **Criar solicitação de pull**.\n\nO GitHub levará você a uma página para inserir um título e uma descrição das alterações. É importante fornecer o máximo de informações úteis e uma justificativa para por que você está fazendo este pull request em primeiro lugar. O proprietário do projeto deve poder determinar se a sua alteração é tão útil para todos quanto você pensa. Por fim, clique em **Criar solicitação de pull**."}