Skip to main content
We publish frequent updates to our documentation, and translation of this page may still be in progress. For the most current information, please visit the English documentation.

Contribuir para projetos

Aprenda a contribuir para um projeto por meio da bifurcação.

Sobre a bifurcação

Se você quiser contribuir com o projeto de outra pessoa, mas não tiver acesso de gravação ao repositório, poderá usar um fluxo de trabalho de "fork e solicitação de pull".

Um fork é um novo repositório que compartilha configurações de código e visibilidade com o repositório "upstream" original. Os forks geralmente são usados para iterar ideias ou alterações antes de serem propostas de volta para o repositório upstream, como em projetos código aberto ou quando um usuário não tem acesso de gravação ao repositório upstream.

Você pode contribuir enviando solicitações de pull de seu fork para o repositório upstream. Para obter mais informações, confira "Criar um fork de um repositório".

Bifurcar um repositório

Este tutorial usa o projeto Spoon-Knife, um repositório de teste hospedado no GitHub.com que permite testar o fluxo de trabalho da solicitação de pull e do fork.

  1. Navegue até o projeto Spoon-Knife em https://github.com/octocat/Spoon-Knife.
  2. Clique em Criar Fork. Botão Criar fork

Clonando uma bifurcação

Você criou com sucesso o repositório Spoon-Knife mas, até agora, ele existe apenas em GitHub Enterprise Server. Para poder trabalhar no projeto, você deverá cloná-lo para o seu computador.

Você pode clonar a sua bifurcação com a linha de comando, GitHub CLI ou GitHub Desktop.

  1. No GitHub Enterprise Server, navegue até o seu fork do repositório Spoon-Knife.

  2. Acima da lista de arquivos, clique em Código. Botão "Código"

  3. Copie a URL do repositório.

    • Para clonar o repositório usando HTTPS, em "HTTPS", clique em .
    • 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 .
    • Para clonar um repositório usando GitHub CLI, clique em GitHub CLI e selecione . O ícone da área de transferência para copiar a URL para clonar um repositório com o CLI do GitHub 1. Abra TerminalTerminalGit Bash. 4. Altere o diretório de trabalho atual para o local em que deseja ter o diretório clonado.
  4. Digite git clone e cole a URL já copiada. Ela terá esta aparência, com seu nome de usuário do GitHub Enterprise Server em vez de YOUR-USERNAME:

    $ git clone https://HOSTNAME/YOUR-USERNAME/Spoon-Knife
  5. Pressione Enter. Seu clone local estará criado.

    $ git clone https://HOSTNAME/YOUR-USERNAME/Spoon-Knife
    > Cloning into `Spoon-Knife`...
    > remote: Counting objects: 10, done.
    > remote: Compressing objects: 100% (8/8), done.
    > remove: Total 10 (delta 1), reused 10 (delta 1)
    > Unpacking objects: 100% (10/10), done.

Para saber mais sobre a GitHub CLI, confira "Sobre a GitHub CLI".

Para criar um clone do fork, use o sinalizador --clone.

gh repo fork REPOSITORY --clone=true
  1. No menu Arquivo, clique em Clonar Repositório.

    Captura de tela da barra de menus no Mac. O menu suspenso "Arquivo" é expandido e a opção "Clonar Repositório" está realçada com um contorno laranja.

    Opção de menu Clone (Clonar) no app Windows

    1. Clique na aba que corresponde à localização do repositório que você deseja clonar. Clique também na **URL** para inserir o local do repositório manualmente.

    Captura de tela da janela "Clonar um repositório". Na parte superior da janela, as guias rotuladas como "GitHub.com", "GitHub Enterprise" e "URL" são realçadas com um contorno laranja.

    Guias Location (Local) no menu Clone a repository (Clonar um repositório)

    1. Na lista de repositórios, clique no repositório que você deseja clonar.

    Captura de tela da janela "Clonar um repositório". O repositório "github/docs" está realçado com um contorno laranja.

    Clonar uma lista de repositórios

    1. Para selecionar o diretório local no qual você deseja clonar o repositório, ao lado do campo "Caminho Local", clique em **Escolher...** e navegue até o diretório.

    Captura de tela da janela "Clonar um repositório". O botão, rotulado como "Escolher", está realçado com um contorno laranja.

    Botão Choose (Escolher)

    1. Na parte inferior da janela "Clonar um Repositório", clique em **Clonar**.

Como criar um branch de trabalho

Antes de fazer alterações no projeto, você deve criar um branch e fazer check-out. Mantendo as alterações no próprio branch, você segue o GitHub Flow e garante que será mais fácil contribuir com o mesmo projeto novamente no futuro. Para obter mais informações, confira "GitHub Flow".

git branch BRANCH-NAME
git checkout BRANCH-NAME
git branch BRANCH-NAME
git checkout BRANCH-NAME

Para obter mais informações de como criar e gerenciar branches no GitHub Desktop, confira "Como gerenciar branches".

Fazendo e enviando por push as alterações

Vá em frente e faça algumas alterações no projeto usando seu editor de texto favorito, como o Visual Studio Code. Você pode, por exemplo, alterar o texto de index.html para adicionar seu nome de usuário do GitHub.

Quando estiver pronto para enviar suas alterações, teste e faça commit das suas alterações. git add . informa o Git de que você deseja incluir todas as alterações no próximo commit. git commit cria um instantâneo dessas alterações.

git add .
git commit -m "a short description of the change"
git add .
git commit -m "a short description of the change"

Para obter mais informações sobre como preparar as alterações e fazer commit delas no GitHub Desktop, confira "Como fazer commit das alterações no seu projeto e revisá-las".

Ao testar e fazer commit dos arquivos, você essencialmente diz ao Git, "Ok, tire um instantâneo das minhas alterações!" Você pode continuar fazendo mais alterações e tirar mais instantâneos do commit.

No momento, suas alterações existem apenas localmente. Quando estiver pronto para fazer push das suas alterações para GitHub Enterprise Server, faça push delas para o controle remoto.

git push
git push

Para obter mais informações sobre como efetuar push das alterações no GitHub Desktop, confira "Como efetuar push de alterações para o GitHub".

Fazendo um pull request

Finalmente, você está pronto para propor alterações no projeto principal! Essa é a última etapa para produzir uma bifurcação do projeto de outra pessoa, e a mais importante, indiscutivelmente. Se você fez uma alteração que você considera que beneficiaria a comunidade como um todo, você deve considerar contribuir de novamente.

Para fazer isso, acesse o repositório GitHub Enterprise Server onde seu projeto encontra-se. Neste exemplo, ele estará em https://github.com/<your_username>/Spoon-Knife. Você verá uma notificação indicando que o branch está um commit à frente de octocat:main. Clique em Contribuir e em Abrir uma solicitação de pull.

O GitHub Enterprise Server levará você para uma página que mostra as diferenças entre o fork e o repositório octocat/Spoon-Knife. Clique em Criar solicitação de pull.

GitHub Enterprise Server levará você a uma página onde você pode inserir um título e uma descrição das suas alterações. É importante fornecer tantas informações úteis e uma razão para o motivo de você estar fazendo este pull request. 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.

Gerenciando feedback

Os pull requests são uma área de discussão. Neste caso, o Octocat está muito ocupado e provavelmente não irá fazer merge das suas alterações. Para outros projetos, não se ofenda se o proprietário do projeto rejeitar o seu pull request ou pedir mais informações sobre o porquê de a alteração ter sido feita. Pode até ser que o proprietário do projeto não faça o merge do seu pull request e isso está perfeitamente bem. Suas alterações existem no fork. E quem sabe - talvez alguém que você nunca conheceu, considere as suas alterações muito mais valiosas do que o projeto original.

Como localizar os projetos

Você fez uma bifurcação com sucesso e contribuiu de volta para um repositório. Vá em frente e contribua um pouco mais!