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 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.
-
Navegue até o projeto
Spoon-Knife
em https://github.com/octocat/Spoon-Knife. -
No canto superior direito da página, clique em Criar Fork.
-
Em "Proprietário", selecione o menu suspenso e clique em um proprietário do repositório com fork.
Note
Se o nome de usuário estiver esmaecido, o fork já existe. Em vez disso, você deve atualizar o fork existente. Para obter mais informações, confira "Sincronizar uma bifurcação".
-
Por padrão, os forks são nomeados da mesma forma que os respectivos repositórios pai. Opcionalmente, para distinguir ainda mais o fork, no campo "Nome do repositório", digite um nome.
-
Opcionalmente, no campo "Descrição", digite uma descrição do fork.
-
Opcionalmente, selecione Copiar somente o branch PADRÃO.
Para muitos cenários de bifurcação, como contribuir para projetos de código aberto, você só precisa copiar o branch padrão. Se você não selecionar essa opção, todos os branches serão copiados para o novo fork.
-
Clique em Criar bifurcação.
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 "Criar e excluir branches no repositório".
Clonando uma bifurcação
Você criou com sucesso o repositório Spoon-Knife mas, até agora, ele existe apenas em GitHub. 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.
-
No GitHub, navegue até o seu fork do repositório Spoon-Knife.
-
Acima da lista de arquivos, clique em Código.
-
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 a GitHub CLI, clique em GitHub CLI e em .
-
-
Abra TerminalTerminalGit Bash.
-
Altere o diretório de trabalho atual para o local em que deseja ter o diretório clonado.
-
Digite
git clone
e cole a URL já copiada. Ela terá esta aparência, com seu nome de usuário do GitHub em vez deYOUR-USERNAME
:git clone https://github.com/YOUR-USERNAME/Spoon-Knife
-
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 GitHub CLI, confira "Sobre o a CLI do GitHub".
Para criar um clone do fork, use o sinalizador --clone
.
gh repo fork REPOSITORY --clone=true
-
No menu Arquivo, clique em Clonar Repositório.
-
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.
-
Na lista de repositórios, clique no repositório que você deseja clonar.
-
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.
-
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 "Fluxo do GitHub".
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 "Gerenciar branches no GitHub Desktop".
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 de como preparar e fazer commit nas alterações no GitHub Desktop, confira "Fazer commit e revisar as alterações no seu projeto no GitHub Desktop".
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, faça push delas para o controle remoto.
git push
git push
Para obter mais informações de como efetuar push nas alterações no GitHub Desktop, confira "Enviar alterações por push para o GitHub do GitHub Desktop".
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 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 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 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. Não se ofenda se o proprietário do projeto rejeitar o seu pull request ou pedir mais informações sobre o motivo da alteração. Mesmo que o proprietário do projeto opte por não mesclar seu pull request, suas alterações ainda existirão no fork. Talvez outra pessoa considere seu fork muito mais valioso 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! Para obter mais informações, confira "Encontrando maneiras de contribuir com o código aberto no GitHub".