{"id":30115336,"url":"https://github.com/fernandozuchi/dia-03-curso-express-git","last_synced_at":"2026-02-11T04:04:20.405Z","repository":{"id":305689322,"uuid":"1023622360","full_name":"FernandoZuchi/dia-03-curso-express-git","owner":"FernandoZuchi","description":"Dia 03 do curso de fundamentos de git e github - Tema de hoje: Branches e Pull Request","archived":false,"fork":false,"pushed_at":"2025-07-21T12:45:57.000Z","size":4,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-08-10T08:24:13.855Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":null,"has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/FernandoZuchi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-07-21T12:45:17.000Z","updated_at":"2025-07-21T12:46:00.000Z","dependencies_parsed_at":"2025-07-21T14:45:57.069Z","dependency_job_id":"3ec16660-5f0b-4563-b3e4-678f2e2f3ff7","html_url":"https://github.com/FernandoZuchi/dia-03-curso-express-git","commit_stats":null,"previous_names":["fernandozuchi/dia-03-curso-express-git"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/FernandoZuchi/dia-03-curso-express-git","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoZuchi%2Fdia-03-curso-express-git","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoZuchi%2Fdia-03-curso-express-git/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoZuchi%2Fdia-03-curso-express-git/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoZuchi%2Fdia-03-curso-express-git/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/FernandoZuchi","download_url":"https://codeload.github.com/FernandoZuchi/dia-03-curso-express-git/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/FernandoZuchi%2Fdia-03-curso-express-git/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29326879,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-11T03:52:29.695Z","status":"ssl_error","status_checked_at":"2026-02-11T03:52:23.094Z","response_time":97,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-08-10T08:17:11.772Z","updated_at":"2026-02-11T04:04:20.392Z","avatar_url":"https://github.com/FernandoZuchi.png","language":null,"funding_links":[],"categories":[],"sub_categories":[],"readme":"### Aula: Trabalhando com Git e Pull Requests - Fluxo de Trabalho, Branches e Colaboração\n\n---\n\n### **1. Introdução ao Fluxo de Trabalho no GitHub**\n\nO GitHub é uma plataforma essencial para desenvolvedores colaborarem em projetos, principalmente em código aberto. Para entender como a colaboração acontece, é importante compreender conceitos como **Fork**, **Pull Request (PR)** e **Branches**. Vamos explorar todos esses conceitos e como você pode usá-los no seu fluxo de trabalho de desenvolvimento.\n\n---\n\n### **2. O que é um Pull Request (PR)?**\n\nQuando você faz um **fork** de um repositório no GitHub, está criando uma cópia independente daquele projeto em seu perfil pessoal. Isso permite que você faça alterações no projeto sem afetar o repositório original.\n\n#### **Definição de Pull Request:**\n\nUm **Pull Request** é uma solicitação feita para que o repositório original \"puxe\" as mudanças feitas no seu **fork**. Ele permite que você proponha alterações ao código original, e os mantenedores do repositório podem revisar essas alterações antes de aceitá-las ou rejeitá-las.\n\nQuando um Pull Request é enviado, os mantenedores podem:\n\n* **Visualizar** as alterações propostas.\n* **Comentar** em trechos específicos do código.\n* **Solicitar melhorias** ou mudanças.\n* **Aceitar** (fazer o merge) ou **rejeitar** o PR.\n\n#### **Exemplo Prático:**\n\nImagine que você encontrou um bug no projeto de um repositório que você segue no GitHub. Você faz um **fork** do repositório, corrige o erro no seu fork e cria um PR para sugerir a correção aos mantenedores do repositório original.\n\n---\n\n### **3. Como Criar um Pull Request (PR)?**\n\nAqui está o passo a passo para criar um PR:\n\n#### Passo 1: Faça o Fork e Clone do Repositório\n\n1. **Fork** o repositório que você quer contribuir.\n2. No terminal, **clone** o repositório para o seu computador:\n\n   ```bash\n   git clone https://github.com/usuario/rep-forkado.git\n   cd rep-forkado\n   ```\n\n#### Passo 2: Crie suas Alterações\n\nAgora, você pode editar, adicionar ou remover arquivos no seu repositório local como necessário.\n\n#### Passo 3: Faça Commit das Alterações\n\nApós realizar as modificações, faça o **commit** das alterações:\n\n```bash\ngit add .\ngit commit -m \"Descrição clara da mudança\"\n```\n\n#### Passo 4: Envie para o GitHub\n\nEnvie as mudanças para o seu repositório no GitHub:\n\n```bash\ngit push origin\n```\n\n#### Passo 5: Crie o Pull Request\n\n1. Acesse a página do seu **fork** no GitHub.\n2. Clique no botão **“Compare \u0026 pull request”**.\n3. Na tela seguinte, revise as alterações e escreva um título e descrição claros sobre o que você fez e por que.\n4. Clique em **\"Create pull request\"**.\n\n---\n\n### **4. O que são Branches no Git?**\n\n#### **Definição de Branch:**\n\nUm **branch** (ramo) no Git é uma linha de desenvolvimento independente dentro do seu projeto. Imagine que o **main** (ou **master**) é a versão estável do seu projeto. Com branches, você pode desenvolver novas funcionalidades, corrigir erros ou testar novas ideias sem interferir no código principal.\n\n#### **Exemplo de Fluxo com Branches:**\n\nSuponha que o repositório tem uma linha do tempo de commits assim:\n\n```plaintext\nmain:               A---B---C\n  \t                       \t\t\\\nnova-funcionalidade:       \t  D---E\n```\n\n* **Commits A, B, C** são na branch **main**.\n* **Commits D e E** estão sendo feitos na branch **nova-funcionalidade**, que foi criada a partir do commit C.\n\nIsso permite que o desenvolvimento da nova funcionalidade ocorra de forma isolada, sem impactar a branch principal.\n\n---\n\n### **5. Por Que Usamos Branches?**\n\nImagine que várias pessoas estão trabalhando em um projeto:\n\n* Uma pessoa está desenvolvendo uma **nova funcionalidade**.\n* Outra está **corrigindo um bug**.\n* Outra está **atualizando a documentação**.\n\nSe todos trabalharem diretamente na branch **main**, isso pode gerar **conflitos de código** e dificultar a organização. Usando branches, cada pessoa pode trabalhar em sua própria linha do tempo, sem afetar as demais.\n\n#### **Exemplo Prático:**\n\n1. **Desenvolvedor A** cria uma branch para corrigir um bug no sistema de login.\n2. **Desenvolvedor B** cria uma branch para implementar uma nova funcionalidade de carrinho de compras.\n3. Quando as mudanças são concluídas e testadas, elas podem ser **mescladas** de volta para a branch **main**.\n\n---\n\n### **6. Dicas de Nomeação de Branches**\n\nNomes de branches devem ser claros e descritivos para facilitar a identificação do que está sendo feito nela. Evite nomes genéricos como \"teste\" ou \"branch1\". Exemplos de boas práticas:\n\n* `feature/carrinho-compras` — para uma nova funcionalidade.\n* `bugfix/corrigir-botao-login` — para correções de bugs.\n* `hotfix/corrigir-erro-envio-email` — para correções emergenciais.\n\n---\n\n### **7. Trabalhando com Branches no Git**\n\nAgora que você sabe o que são branches, vamos aprender como manipulá-las no Git.\n\n#### **7.1 Visualizando as Branches Existentes**\n\nPara ver todas as branches do repositório, use:\n\n```bash\ngit branch\n```\n\nExemplo de saída:\n\n```plaintext\nmain\n* nova-funcionalidade\n```\n\nO asterisco (\\*) indica qual branch está ativa no momento (no caso, **nova-funcionalidade**).\n\n#### **7.2 Criando uma Nova Branch**\n\nPara criar uma nova branch, use o comando:\n\n```bash\ngit branch nome-da-branch\n```\n\nExemplo prático:\n\n```bash\ngit branch nova-funcionalidade\n```\n\nIsso cria a branch, mas não a ativa.\n\n#### **7.3 Alternando Entre Branches**\n\nPara alternar para a branch criada, use:\n\n```bash\ngit checkout nome-da-branch\n```\n\nExemplo:\n\n```bash\ngit checkout nova-funcionalidade\n```\n\nAgora, qualquer modificação será registrada na branch **nova-funcionalidade**.\n\n#### **7.4 Criando e Alternando com Um Só Comando**\n\nVocê pode criar e alternar para uma nova branch em um único comando:\n\n```bash\ngit checkout -b nova-funcionalidade\n```\n\nEsse comando cria a branch **nova-funcionalidade** e a ativa automaticamente.\n\n---\n\n### **8. Conclusão**\n\nNeste módulo, vimos como utilizar **forks**, **pull requests**, e **branches** para gerenciar e colaborar em projetos no Git. Esses são conceitos essenciais para qualquer desenvolvedor que trabalha com código aberto ou em equipes de desenvolvimento.\n\nLembre-se:\n\n* **Fork**: Cria uma cópia de um repositório para que você possa trabalhar de forma independente.\n* **Pull Request (PR)**: Solicita que suas alterações sejam integradas ao repositório original.\n* **Branch**: Permite trabalhar de forma isolada em diferentes partes do código, sem afetar a versão principal.\n\nEsses processos ajudam a organizar o fluxo de trabalho e a manter o código limpo e organizado, especialmente em projetos colaborativos.\n\n---\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernandozuchi%2Fdia-03-curso-express-git","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffernandozuchi%2Fdia-03-curso-express-git","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffernandozuchi%2Fdia-03-curso-express-git/lists"}