Artigo original: How to make your first pull request on GitHub
O que significa fork?
Fork, ou bifurcação, é quando gostamos tanto do repositório de alguém e gostaríamos de tê-lo em nossa conta do GitHub, nós o copiamos para que possamos trabalhar com ele separadamente.
Quando copiamos um repositório, obtemos uma versão desse repositório inteiro com todo o seu histórico. Após a cópia, podemos fazer o que quisermos sem afetar a versão original.
O que é um pull request?
O pull request (algo como 'solicitação de envio', em português) é a maneira como contribuímos para projetos de grupo ou projetos de código aberto (open source).
Por exemplo, um usuário Harry copia um repositório de ThanoshanMV e faz alterações nesse repositório. Agora, Harry pode fazer um pull request para ThanoshanMV, mas cabe a ThanoshanMV aceitá-lo ou recusá-lo. É como dizer: "ThanoshanMV, você poderia aceitar minhas alterações, por favor?"
O que significa contribuir
Podemos contribuir para um projeto open source de diversas maneiras, além do código. Algumas dessas maneiras são descritas abaixo.
Como diz o guia inicial de hacktitude da empresa de tecnologia 99xtechnology, podemos contribuir para um projeto open source das seguintes maneiras:
- Design: você pode criar os layouts de um projeto para melhorar sua usabilidade, melhorar a navegação e o menu do projeto com base em programas de pesquisa do usuário, criar arte para logotipos ou camisetas e fornecer guias de estilo para o projeto.
- Redação: você pode escrever e melhorar a documentação do projeto ou traduzir a documentação, iniciar um boletim informativo (newsletter) para o projeto ou escrever tutoriais para ele, selecionar destaques da lista de discussão ou analisar uma pasta de exemplos mostrando como os projetos são usados.
- Organização: você pode vincular issues duplicadas, sugerir novos labels para as issues, sugerir o fechamento de issues antigas abertas e fazer perguntas sobre issues abertas recentemente para levar a discussão adiante.
- Ajude os outros: responda a perguntas sobre issues em aberto, revise o código nos envios de outras pessoas e ofereça-se para orientar outro colaborador.
- Código: ajude a resolver issues em aberto, pergunte se você pode fornecer novos recursos e melhorar ferramentas e testes.
Vamos fazer nosso primeiro pull request!
Se você não está muito familiarizado com o Git e o GitHub, revise o seguinte material: The beginner’s guide to Git & GitHub (texto em inglês).
1. Faça uma cópia do repositório
Primeiro, copie o (faça o fork do) repositório. Basta clicar no botão Fork no topo da página. Isso vai criar uma versão de todo o repositório na sua conta.
2. Clone o repositório
Quando o repositório estiver na sua conta, clone-o em sua máquina para trabalhar com ele localmente.
Para clonar, clique no botão Clone e copie o link.
Abra o terminal e execute o seguinte comando. Ele clonará o repositório localmente.
$ git clone [link do github]
Agora, configuramos uma cópia da branch master do repositório principal no projeto on-line.
Precisamos ir para esse diretório clonado. Para isso, executamos este comando:
$ cd [NOME DO REPOSITORIO]
3. Crie uma branch
É uma boa prática criar uma outra branch ao trabalhar com repositórios, seja em um pequeno projeto ou contribuindo para o trabalho de um grupo.
O nome da branch deve ser curto e deve refletir o trabalho que estamos fazendo
Agora crie uma branch usando o comando git checkout
:
$ git checkout -b [Nome da branch]
4. Faça mudanças e faça o commit delas
Faça alterações essenciais no projeto e salve-o.
Em seguida, execute git status
e você verá as alterações.
Adicione essas alterações na branch que você acabou de criar usando o comando git add
:
$ git add .
Agora, confirme essas alterações usando o comando git commit
:
$ git commit -m "Adicionando um artigo à semana 02 dos artigos da semana."
5. Faça o push das mudanças para o GitHub
Para enviar as alterações para o GitHub, precisamos identificar o nome do repositório remoto.
$ git remote
O nome deste repositório remoto é "origin".
Depois de identificar o nome do repositório remoto, podemos enviar/fazer um push com segurança essas alterações para o GitHub.
git push origin [Nome da branch]
6. Criando o pull request
Vá para o seu repositório no GitHub e você verá um botão dizendo "Compare & pull request". Clique nele.
Forneça os detalhes necessários sobre o que você fez (você pode fazer referência às issues usando "#"). Agora, envie o pull request.
Parabéns! Você acaba de fazer o seu primeiro pull request.🎉
Se seu pull request for aceito, você receberá um e-mail.
7. Sincronize a sua versão com a branch master
Antes de enviar qualquer pull request para o repositório original, você deve sincronizar seu repositório com o original.
Mesmo se você não enviar um pull request para o repositório original, é melhor sincronizar seu repositório com o original, pois alguns recursos adicionais e correções de bugs podem ter sido feitos desde que você o copiou.
Siga estas etapas para atualizar/sincronizar essas alterações em sua branch master:
- Primeiro, verifique em qual branch você está.
$ git branch
Ele listará todas as branches e indicará a branch atual ou ativa em verde.
2. Alterne para a branch master.
$ git checkout master
3. Adicione o repositório original como um repositório upstream.
Para extrair as alterações do repositório original para sua versão copiada, você precisa adicionar o repositório Git original como um repositório upstream.
$ git remote add upstream [HTTPS]
Aqui, [HTTPS] é o URL que você deve copiar do repositório do proprietário.
4. Faça o fetch/obtenha o repositório.
Busque todas as alterações do repositório original. Os commits para o repositório original serão armazenados em uma branch local chamada upstream/master.
$ git fetch upstream
5. Faça o merge/mescle as branches.
Mescle as alterações do upstream/master em sua branch master local. Isso fará com que a branch master do seu fork seja sincronizada com o repositório upstream sem perder suas alterações locais.
$ git merge upstream/master
6. Faça o push/envie mudanças ao GitHub
Neste ponto, sua branch local é sincronizada com a branch master do repositório original. Se você deseja atualizar o repositório do GitHub, precisa enviar suas alterações.
$ git push origin master
Observação: depois de sincronizar o fork da sua branch master copiada, você pode remover esse repositório remoto, se desejar, mas você também precisará atualizar/sincronizar seu repositório no futuro, então é melhor mantê-lo.
$ git remote rm [Nome remoto]
8. Delete a branch desnecessária
As branches são criadas para um propósito especial. Uma vez que esse objetivo é alcançado, essas branches não são necessárias, então você pode excluí-las.
$ git branch -d [Nome da branch]
Você também pode excluir a versão dele no GitHub.
git push origin --delete [Nome da branch]
Conclusão
O GitHub é uma ferramenta poderosa para controlar o histórico de versões. Todos podem contribuir com projetos open source fazendo pull requests. Contribuições nem sempre são código – existem outras maneiras de contribuir também.
Por fim, devo dizer que você não deve se preocupar se seus pull requests forem rejeitados. Os mantenedores gastam muito tempo melhorando seus projetos e sabem muito mais sobre seus projetos do que nós. Portanto, não se preocupe se sua solicitação não for mesclada.
Mantenha-se forte, mantenha-se positivo e nunca desista.
― Roy T. Bennett, The Light in the Heart
Este artigo foi publicado originalmente no Medium.
Você pode entrar em contato com o autor e se conectar com ele pelo Twitter.
Continue contribuindo com o mundo open source!