Skip to main content

Contribuir para projetos

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

Who can use this feature

Os membros de uma enterprise with managed users não podem criar fork de repositórios externos ou internos da empresa.

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
  3. Selecione um proprietário para o repositório bifurcado. Criar uma página de bifurcação com a lista suspensa do proprietário enfatizada
  4. Por padrão, os forks são nomeados da mesma forma que os respectivos repositórios pai. Você pode alterar o nome da bifurcação para distingui-la ainda mais. Criar uma página de bifurcação com o campo do nome do repositório enfatizado
  5. Como opção, adicione uma descrição da bifurcação. Criar uma página de bifurcação com o campo de descrição enfatizado
  6. Escolha se deseja copiar apenas o branch padrão ou todos os branches para a nova bifurcação. Para muitos cenários de bifurcação, como contribuir para projetos de código aberto, você só precisa copiar o branch padrão. Por padrão, somente o branch padrão é copiado. Opção para copiar apenas o branch padrão
  7. Clique em Criar bifurcação. Botão Criar bifurcação enfatizado

Observação: se você quiser copiar branches adicionais do repositório pai, poderá fazê-lo na página Branches. Para obter mais informações, confira "Como criar e excluir branches no seu repositório".

Clonando uma bifurcação

Você criou com sucesso o repositório Spoon-Knife mas, até agora, ele existe apenas em GitHub Enterprise Cloud. 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 Cloud, 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 Cloud em vez de YOUR-USERNAME:

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

    $ git clone https://github.com/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.

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

    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.

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

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

    1. Escolha o repositório que você quer clonar na lista.

    Clonar uma lista de repositórios

    Clonar uma lista de repositórios

    1. Clique em **Escolher…** e procure um caminho local em que deseja clonar o repositório.

    Botão Choose (Escolher)

    Botão Choose (Escolher)

    1. Clique em **Clonar**.

    Botão Clone (Clonar)

    Botão Clone (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 Cloud, 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 Cloud 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 Cloud 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 Cloud 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!