Como colaborar em projetos no GitHub: um guia para iniciantes
Tags: github, tutorial, beginners, opensource
Published: 2023-05-13 00:44:29

Neste guia para iniciantes, você aprenderá os conceitos básicos de colaboração em projetos no GitHub. Após leitura você estará pronto para começar a contribuir com projetos no GitHub e fazer parte da comunidade de desenvolvedores.

## Criando uma conta no GitHub e configurando seu perfil.

> Para criar uma conta no GitHub e configurar seu perfil, siga estas etapas:

- Clique em "Sign up for GitHub" (Cadastrar-se no GitHub).
- Escolha seu plano (opções gratuita ou paga) e selecione suas preferências.
- Selecione seus interesses e experiência em programação, se desejar, para personalizar sua experiência no GitHub.
- Selecione suas opções de notificação para receber atualizações relevantes.
- Verifique seu endereço de e-mail clicando no link enviado para você pelo GitHub.
- Após a verificação, você será redirecionado para a página de configuração do seu perfil.
- Preencha as informações do seu perfil, incluindo seu nome, foto, biografia e links para seu site ou redes sociais, se desejar.
- Personalize suas preferências de visibilidade de perfil, notificações e outras configurações conforme suas preferências.
- Explore as configurações adicionais, como chaves SSH (se necessário) e integrações com outras ferramentas.

> Agora sua conta no GitHub está criada e seu perfil está configurado. Você está pronto para começar a usar o GitHub para colaborar em projetos, criar repositórios e muito mais.

## Explorando repositórios e encontrando projetos para colaborar.

> Para explorar repositórios e encontrar projetos para colaborar no GitHub, **você pode seguir estas dicas:**

- **Explore as categorias e tópicos:** No GitHub, você pode explorar repositórios com base em categorias e tópicos específicos. Navegue pelas seções "Explore" (Explorar) e "Topics" (Tópicos) para descobrir projetos relacionados aos seus interesses.
- **Use a barra de pesquisa:**  Utilize a barra de pesquisa na parte superior do GitHub para procurar por palavras-chave relacionadas aos projetos que você está interessado em colaborar. Refine os resultados usando filtros como linguagem, estrelas (popularidade), atualização e muito mais.
- **Contribua para projetos de código aberto:** O GitHub é conhecido por hospedar muitos projetos de código aberto. Explore a seção "Trending" (Tendências) para encontrar projetos populares e ativos. Além disso, você pode navegar pelas listas de projetos de código aberto mantidas por organizações ou comunidades específicas.
- **Participe de comunidades e fóruns:** Junte-se a comunidades de desenvolvedores e fóruns relacionados aos seus interesses. Esses espaços muitas vezes têm seções dedicadas a anúncios de projetos em busca de colaboradores. Você pode encontrar essas oportunidades de colaboração por meio de grupos no GitHub, fóruns de desenvolvedores ou redes sociais.
- **Explore projetos de seus contatos:** Se você segue desenvolvedores ou organizações específicas no GitHub, confira os projetos em que eles estão trabalhando. Você pode descobrir projetos interessantes e aproveitar a oportunidade para colaborar com eles.

> **Lembre-se de ler as descrições do projeto**, os arquivos README e as diretrizes de contribuição antes de se envolver. Isso ajudará você a entender melhor o projeto e as expectativas dos colaboradores.

## Para fazer um fork (bifurcação) de um projeto no GitHub e cloná-lo para sua máquina local, siga estas etapas:

> Para fazer um fork (bifurcação) de um projeto no GitHub e cloná-lo para sua máquina local, siga estas etapas:

- No GitHub, acesse o repositório do projeto que você deseja contribuir.
- Na parte superior direita da página do repositório, clique no botão "Fork" (Bifurcar).
- Aguarde enquanto o GitHub cria uma cópia do projeto em seu próprio espaço de usuário.
- Após a conclusão da bifurcação, você será redirecionado para a página do repositório em seu perfil.
- No seu perfil, clique no botão verde "Code" (Código) e copie o URL do repositório.
- Abra o terminal ou prompt de comando no seu computador e navegue até o diretório onde deseja clonar o repositório.
- Digite o seguinte comando e substitua **<URL do Repositório>** pelo URL que você copiou:

```
git clone <URL do Repositório>
```

> **Okay!** Agora você tem uma cópia do projeto bifurcado (forked) em seu computador. Você pode fazer alterações localmente e depois enviá-las ao projeto original através de um pull request (requisição de mudança) para contribuir com o projeto.

## Realizando alterações e commits em seu repositório local.

> _Para realizar alterações e commits em seu repositório local, siga estas etapas:_

- Abra o terminal ou prompt de comando e navegue até o diretório do seu repositório clonado.
- Certifique-se de estar na branch correta usando o comando git branch. Se necessário, troque para a branch desejada usando `git checkout <nome_da_branch>`.
- Faça as alterações nos arquivos do seu projeto usando o editor de texto ou ambiente de desenvolvimento de sua escolha.
- Após fazer as alterações, você precisa adicionar as alterações para serem incluídas no próximo commit. Use o seguinte comando para adicionar todos os arquivos modificados:

```
git add .
```

> Se preferir, você também pode adicionar arquivos específicos em vez de todos usando `git add <nome_do_arquivo>`.

> Agora, você está pronto para criar um commit com as alterações adicionadas. Use o comando `git commit` seguido de uma mensagem de commit para descrever as alterações. Por exemplo:

```
git commit -m "Atualização do arquivo de configuração"
```

> Após criar o commit, suas alterações estarão registradas no repositório local. Você pode continuar fazendo mais alterações e commits, se necessário.

> Lembre-se de que essas alterações estão no seu repositório local. Para enviá-las ao repositório remoto no GitHub, você precisará usar o comando `git push` após o commit.


## Criando um pull request (requisição de mudança) para propor suas alterações ao projeto original.

> Para propor suas alterações ao projeto original através de um pull request (requisição de mudança), siga estas etapas:

- Certifique-se de ter as alterações e commits desejados no seu repositório local.
- No GitHub, acesse a página do repositório original (não o seu fork).
- No menu superior do repositório, clique na guia "Pull requests" (Requisições de mudança).
- Clique no botão verde "New pull request" (Nova requisição de mudança).
- Na página de criação do pull request, selecione o branch do repositório original para onde você deseja enviar suas alterações.
- No lado direito, selecione o seu branch no fork como a "base branch" (branch base) do pull request.
- Revise as alterações mostradas na página para garantir que tudo esteja correto.
- Adicione um título descritivo e, se necessário, uma descrição detalhada para explicar as alterações propostas.
- Se desejar, você pode associar o pull request a uma issue (problema) específica selecionando-a na seção "Linked issues" (Issues vinculadas).
- Após revisar todas as informações, clique no botão verde "Create pull request" (Criar requisição de mudança) para enviar o pull request.
- O pull request será enviado ao repositório original, onde os mantenedores e colaboradores poderão revisar suas alterações, fazer comentários e iniciar discussões.
- Fique atento às notificações e comentários no pull request. Se necessário, faça ajustes adicionais em seu branch e faça novos commits. As alterações serão atualizadas automaticamente no pull request.
- Os mantenedores do projeto original podem aprovar suas alterações e mesclá-las (merge) no repositório principal.

> Lembre-se de que um pull request é uma forma de colaborar e propor mudanças em projetos de código aberto. Certifique-se de seguir as diretrizes de contribuição do projeto e fornecer informações relevantes para facilitar a revisão de suas alterações.

## Para trabalhar com issues (problemas) e gerenciar tarefas no GitHub, siga estas etapas:

- Clique na guia "Issues" (Problemas) para visualizar todas as issues existentes no projeto.
- Clique no botão "New issue" (Novo problema) para criar uma nova issue.
- No campo "Title" (Título), forneça um resumo conciso do problema.
- No campo "Leave a comment" (Deixe um comentário), descreva o problema em detalhes, incluindo passos para reprodução, informações adicionais relevantes e qualquer contexto necessário.
- Se desejar, você pode atribuir a issue a um colaborador específico, adicionar rótulos (labels) para categorização e definir a milestone (marco) associada à tarefa.
- Clique no botão "Submit new issue" (Enviar novo problema) para criar a issue.
- As issues existentes serão listadas na página "Issues", onde você pode visualizá-las, filtrá-las e pesquisá-las.
- Ao trabalhar em uma issue, você pode adicionar comentários adicionais, responder a perguntas e fornecer atualizações sobre o progresso.
- Use as opções de edição na página da issue para adicionar rótulos, definir a assignee (pessoa responsável) e vincular a issue a um pull request ou outra issue relacionada.
- Quando a issue estiver concluída ou resolvida, você pode fechá-la clicando no botão "Close issue" (Fechar problema). As issues fechadas permanecerão visíveis para referência, mas não estarão mais abertas para novos comentários.
- Você pode usar as funcionalidades de filtragem, busca e ordenação na página "Issues" para gerenciar e encontrar problemas específicos com base em critérios como rótulos, assignees e milestones.

> O gerenciamento adequado de issues ajuda na organização do trabalho, permite que colaboradores sejam atribuídos a tarefas específicas e facilita a comunicação entre os membros da equipe. Mantenha-se atualizado com as notificações de issues para acompanhar as discussões e tarefas relacionadas ao projeto.

## Para se comunicar com a comunidade do projeto através de discussões e comentários no GitHub, siga estas dicas:

### Discussions:

- Acesse a página do repositório no GitHub e clique na guia "Discussions" (Discussões).
- Procure por discussões existentes ou inicie uma nova discussão clicando no botão "New discussion" (Nova discussão).
- Adicione um título descritivo e, em seguida, escreva seu comentário ou pergunta no corpo da discussão.
- Use formatação de texto, mencione outros colaboradores (@nome_do_colaborador) e adicione links relevantes, se necessário.
- Após publicar sua discussão, outros membros da comunidade poderão responder e participar da conversa.

### Comentários em issues e pull requests:

- Navegue até a página de uma issue ou pull request em que você deseja comentar.
- Role até a seção de comentários e digite seu comentário no campo de texto fornecido.
- Use formatação de texto, mencione outros colaboradores (@nome_do_colaborador) e adicione links relevantes, se necessário.
- Clique em "Comment" (Comentar) para publicar seu comentário.
- Você pode continuar a discussão por meio de respostas e interações com outros comentários.

### Etiqueta na comunicação:

- Mantenha um tom respeitoso e profissional ao se comunicar com a comunidade.
- Seja claro e objetivo em suas perguntas, comentários ou respostas.
- Evite linguagem ofensiva, agressiva ou inadequada.
- Leia atentamente as respostas e comentários anteriores antes de contribuir para evitar repetições.
- Esteja aberto a diferentes opiniões e perspectivas, e seja cortês ao discordar.
- Evite discussões não relacionadas ao projeto em questão.

> Lembre-se de que a comunicação efetiva é essencial para a colaboração em projetos de código aberto. Ao se envolver em discussões e comentários, esteja disposto a ajudar, esclarecer dúvidas e contribuir para um ambiente colaborativo e construtivo.

## Para manter seu repositório local atualizado com as alterações do projeto original no GitHub, siga estas etapas:

- Abra o terminal ou prompt de comando e navegue até o diretório do seu repositório clonado.
- Certifique-se de estar na branch correta em que deseja aplicar as atualizações.
- Adicione o repositório original como um remote (origem) usando o comando 
`git remote add <nome_do_remote> <URL_do_repositório_original>` 
Por exemplo:

```
git remote add upstream <URL_do_repositório_original>

```
- Verifique se o remote foi adicionado corretamente usando o comando git remote -v. Você deve ver os URLs do seu repositório (origin) e do repositório original (upstream).
- Atualize seu repositório local com as alterações do repositório original usando o comando git pull upstream <nome_da_branch>. Por exemplo:

```
git pull upstream main

```

> Isso trará as alterações mais recentes da branch main do repositório original para a sua branch local.     Resolva quaisquer conflitos que possam surgir durante o processo de mesclagem (merge) das alterações. O Git irá ajudá-lo a identificar e resolver esses conflitos.Após resolver os conflitos, faça um commit das alterações resultantes, se necessário. Se desejar, você pode enviar as atualizações para o seu repositório remoto (origin) usando o comando git push origin <nome_da_branch>. Seu repositório local agora estará atualizado com as alterações mais recentes do projeto original.

> É importante manter seu repositório local atualizado para acompanhar as alterações feitas no projeto original e evitar problemas de compatibilidade. Lembre-se de verificar periodicamente as atualizações no repositório original e aplicá-las ao seu repositório local, especialmente antes de enviar pull requests ou contribuir com código.


## Resolvendo conflitos de merge (mesclagem) durante o processo de colaboração

> Durante o processo de colaboração em um projeto no GitHub, podem ocorrer conflitos de merge (mesclagem) quando você tenta combinar alterações de diferentes branches ou forks. Para resolver conflitos de merge, siga estas etapas:

- Atualize o seu repositório local com as alterações mais recentes do projeto original, conforme mencionado anteriormente, usando os comandos `git remote add upstream <URL_do_repositório_original>` e `git pull upstream <nome_da_branch>`.
- Ao executar o comando `git pull` ou `git merge`, se ocorrerem conflitos, o Git mostrará uma mensagem indicando quais arquivos têm conflitos.
- Abra esses arquivos em um editor de texto ou ambiente de desenvolvimento.
- Nos arquivos com conflitos, você verá marcações especiais que indicam as alterações conflitantes. Geralmente, elas aparecem como "<<<<<<< HEAD", "=======" e ">>>>>>> <nome_da_branch>".
- Edite o arquivo manualmente para resolver os conflitos. Você precisará decidir quais partes do código você deseja manter e quais descartar.
- Após editar o arquivo, remova as marcações de conflito e deixe o código como você deseja que fique após a mesclagem.
- Após resolver os conflitos em todos os arquivos afetados, salve as alterações.
- Use o comando `git add <nome_do_arquivo>` para adicionar cada arquivo modificado ao índice do Git.
- Quando todos os arquivos estiverem adicionados, execute o comando `git commit` para criar um novo commit com as alterações resolvidas.
- Se você estiver trabalhando em um fork e deseja enviar suas alterações para o repositório original, use o comando `git push origin <nome_da_branch> `para enviar o commit com as alterações resolvidas para o seu fork no GitHub.
- Após resolver os conflitos e enviar o commit, você pode retomar suas atividades normais de colaboração.

> Lembre-se de que resolver conflitos de merge requer atenção e cuidado para garantir que o código resultante esteja correto e funcional. É uma boa prática atualizar regularmente o seu repositório local com as alterações mais recentes do projeto original para reduzir a ocorrência de conflitos.

## Boas práticas de colaboração e etiqueta no GitHub.

- **Seja cortês e respeitoso:** Interaja com os outros membros da comunidade de forma educada e respeitosa. Mantenha um tom profissional e evite linguagem ofensiva, agressiva ou inadequada.
- **Leia as diretrizes do projeto:** Antes de contribuir, certifique-se de ler as diretrizes de contribuição do projeto. Isso inclui informações sobre como reportar problemas, enviar pull requests e seguir padrões de codificação.
- **Seja claro e conciso:** Ao criar issues, comentários ou pull requests, seja claro e conciso em sua comunicação. Descreva o problema ou a alteração de forma detalhada, fornecendo informações relevantes para que outros possam entender facilmente.
- **Seja receptivo ao feedback:** Esteja aberto a receber feedback e críticas construtivas. Responda às perguntas e comentários de forma cordial e considere diferentes perspectivas. A colaboração é um processo de aprendizado contínuo.
- **Evite tarefas duplicadas:** Antes de criar uma nova issue ou pull request, verifique se já existe alguma discussão ou trabalho em andamento relacionado. Evite duplicações e verifique se você está contribuindo de forma eficiente.
- **Siga as convenções de nomenclatura e estilo de código:** Mantenha a consistência ao nomear arquivos, variáveis e funções. Siga as convenções de nomenclatura e estilo de código estabelecidas pelo projeto para manter a legibilidade e facilitar a colaboração.
- **Seja responsável pela qualidade do código:** Antes de enviar um pull request, verifique se seu código está limpo, comentado e funcionando corretamente. Realize testes adequados para garantir a qualidade do código que você está contribuindo.
- **Acompanhe as notificações e responda prontamente:** Fique atento às notificações do GitHub, como comentários em issues ou pull requests. Responda a perguntas ou solicitações de esclarecimento prontamente para manter a comunicação fluindo.
- **Agradeça e reconheça as contribuições dos outros:** Valorize e agradeça as contribuições dos outros membros da comunidade. Reconheça o trabalho árduo e a colaboração dos colegas desenvolvedores.
- **Contribua de forma consistente:** Se você deseja contribuir com um projeto, seja consistente em suas contribuições. Contribuições regulares e de qualidade são mais valiosas do que contribuições únicas e pontuais.

> Lembrando que cada projeto pode ter suas próprias diretrizes e práticas específicas. Sempre verifique as informações fornecidas pelo projeto para entender melhor as expectativas de colaboração e etiqueta.

fontes: diversos sites, foruns, publicações do google afora.