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 "Bifurcar 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.
-
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 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.
-
No GitHub Enterprise Server, 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 Enterprise Server em vez deYOUR-USERNAME
:git clone https://HOSTNAME/YOUR-USERNAME/Spoon-Knife
-
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 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 "Managing branches in 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 "Committing and reviewing changes to your project in 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 Enterprise Server, 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 "Pushing changes to GitHub from 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 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!