Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Antes de começarmos, precisamos nos apresentar, certo?!
Suas instrutoras nesse curso serão: Camila Maia e Maria Antônia Maia - caso você não tenha percebido as semelhanças: somos primas e parceiras nesse projeto incrível chamado Cumbuca Dev.
Camila Maia é uma engenheira de software com mais de 12 anos de experiência, que se destaca na otimização da experiência do desenvolvedor, criação de ferramentas de desenvolvimento, automação de fluxos de trabalho e arquitetura de sistemas robustos.
Reconhecida pelo GitHub como uma das 26 Mantenedoras de Código Aberto no Brasil e a primeira brasileira no programa GitHub Sponsors, Camila destaca-se não apenas por suas habilidades técnicas, mas também por seu talento singular para instruir e comunicar conceitos complexos de forma acessível.
Também contribui ativamente para a comunidade tech, organizando eventos como Pyjamas Conf, EuroPython 2020 e Python Brasil 2020, além de realizar palestras e mentorias em diversas conferências.
O projeto nasceu de uma demanda pessoal, Camila estava mentorando a Maria para fazer a transição de carreira para o mercado de TI. Acontece que nada era tão simples quanto parecia, e mesmo com algum tempo de estudo a Maria não conseguia enxergar um panorama em que alcançaria alguma vaga real de emprego na área de T.I. Passou em alguns bootcamps, cursos imersivos, programas de iniciação... mas a vaga de emprego sempre ia para pessoas com o mesmo perfil.
Desanimada e brocochô, a Maria até pensou em desistir de tudo e continuar nos empregos convencionais - que na região além de serem escassos, não permitiam o desenvolvimento e crescimento pessoal. Foi então que a Camila resolveu mostrar como todo esse conteúdo que a Maria havia aprendido não servia só para ocupar espaço na memória, e usou (pausa dramática).... OPEN SOURCE para mostrar para ela que o conhecimento que tinha já poderia ser usado e dessa forma ela poderia aprender como seria trabalhar nesse mercado de trabalho.
Esse tipo de abordagem foi um divisor de águas para a Maria e , a partir deste momento, tudo começou a mudar. Os conteúdos que a Maria aprendia, além de conseguir fixar com mais qualidade e facilidade de aprendizagem, ela conseguiu se conectar ainda mais com a possibilidade de migrar totalmente para a área de T.I. Foi então que começaram a pensar: se conseguimos mudar a vida de uma pessoa, porquê não ajudar a mudar a realidade de tantas outras que precisam?
Assim nasceu a Cumbuca Dev: uma organização que se dedica apaixonadamente a promover a diversidade e a igualdade na área de Tecnologia da Informação (TI). Através de programas educacionais abrangentes, capacitamos e apoiamos ativamente grupos minoritários, visando não apenas sua inclusão, mas também o desenvolvimento de líderes em potencial dentro de cada setor.
Utilizamos a metodologia desenvolvida de aprendizado constante com uso de Código Aberto para poder romper o ciclo vicioso que impede muitos indivíduos de conquistarem oportunidades no setor de TI: a falta de experiência que dificulta a obtenção de emprego e a impossibilidade de adquirir experiência sem trabalho na área.
Acreditamos na importância de colaboração, transparência e igualdade de oportunidades, e estamos comprometidas em promover um ambiente de T.I. mais justo e inclusivo, onde o compartilhamento de conhecimento e recursos é incentivado e valorizado, tudo isso através da abordagem de código aberto: nossos materiais, estudos e até mesmo nosso site é Open Source, sendo assim todos podem acessar, compartilhar e contribuir.
Inclusive, esse curso é uma parceria INCRÍVEL da LINUXtips com a Cumbuca Dev. Caso queira conhecer um pouco mais sobre o que andamos aprontando, nosso site é !
Boas-vindas a todas as pessoas participantes do curso GitHub Essentials: um curso pensado especialmente para quem nunca teve contato com esta ferramenta tão poderosa. Este treinamento é composto de alguns fundamentos básicos e muita prática, para que você possa aprender entendendo o que está fazendo e, aos poucos, ganhe ainda mais confiança na colaboração e gestão de projetos.
Como o foco do curso é o próprio GitHub, suas ferramentas, o fluxo de trabalho e todas as facilidades que ele oferece, não se preocupe: não focaremos em nenhuma linguagem de programação. Para participar do curso só é necessário ter acesso à internet, conhecimentos básicos de uso do computador e uma conta de e-mail válida, que você possua acesso.
Apesar de esta ser uma ferramenta muito utilizada no dia a dia de pessoas Desenvolvedoras, não há restrições para o uso da plataforma, que disponibiliza na conta gratuita várias funções relevantes até mesmo para quem não trabalha com T.I. Então acaba sendo muito interessante para qualquer tipo de profissional que precise:
Controlar versões de arquivos;
Colaborar em projetos com outras pessoas;
Compartilhar seu trabalho com a comunidade;
Aprender com outros profissionais;
E muito mais... Além de ser uma grande plataforma, que usa parâmetros de segurança avançados e sempre acompanha as novidades em tecnologia. Aqui, é possível usar a sua criatividade para melhorar sua produtividade, seja qual for sua profissão.
Geralmente pessoas iniciantes em TI são apresentadas à plataforma apenas como um ambiente onde podem incluir seus portfólios, quando estão à procura da primeira oportunidade na área. Mas, queremos te mostrar que o GitHub é muito mais do que somente a sua carta de apresentação; ele pode, também, ser um forte aliado nos seus estudos, networking e até mesmo no aprendizado das soft skills necessárias para o trabalho.
Estamos muito felizes com sua presença aqui e prontas para guiar essa jornada de aprendizado e colaboração em uma ampla rede de troca de conhecimentos. Bora iniciar nossos estudos?
Inclusive, este e-book completo está disponível de forma gratuita e na íntegra (sempre atualizado conforme nossas correções), aqui, neste. Não é demais?
Uma Introdução Acolhedora ao Versionamento de Arquivos com Git e GitHub
Estamos apenas no início do nosso curso, no entanto, até aqui você já nos vou falar muito sobre Open Source/Código Aberto. Mas, afinal: O que é Open Source? E como ele pode ajudar na sua carreira?
Mas, Open Source não se limita apenas por essa definição. Ele é um grande ecossistema que conta com comunidades super ativas, que encontram soluções diferentes para (quase) tudo! É muito comum que existam versões Open Source de vários tipos de softwares, bibliotecas, frameworks e é incrível ver o que a comunidade cria para devolver justamente para a comunidade. Todos saem ganhando, não importa o nível de complexidade do desenvolvimento. Simplesmente incrível!
Adaptabilidade:
A flexibilidade do Open Source permite que as empresas adaptem e personalizem os softwares de acordo com suas necessidades específicas, sem as limitações impostas pelos fornecedores de software proprietários.
Código Sempre Atualizado:
Um software Open Source dificilmente ficará obsoleto, pois a comunidade global de desenvolvedores está continuamente identificando problemas, corrigindo bugs e implementando novas funcionalidades. Essa dinâmica de constante atualização garante que o software permaneça relevante, seguro e eficiente ao longo do tempo, adaptando-se rapidamente às mudanças tecnológicas e às novas necessidades dos usuários.
Colaboração Competitiva:
Empresas que competem em outras áreas colaboram no desenvolvimento de softwares Open Source. Essa colaboração não se limita apenas ao sistema operacional; ela se estende a uma vasta gama de projetos, bibliotecas e frameworks que são fundamentais para a infraestrutura de TI. Além disso, a colaboração permite que as empresas compartilhem custos de desenvolvimento e beneficiem-se das melhorias feitas por outros participantes, o que resulta em uma base de código mais rica e confiável. A competição é mantida nos produtos e serviços finais, mas a colaboração no desenvolvimento das ferramentas básicas cria um ecossistema mais saudável e dinâmico. Um exemplo é o GNU/Linux, onde a colaboração melhora tanto o software quanto o hardware, garantindo máxima performance e otimização.
Economia:
O fato de não ter gastos com licenciamento é importante e deve ser levado em conta. A redução de custos permite que a empresa invista em outras áreas, como infraestrutura e hospedagem em nuvem, melhorando a disponibilidade, segurança e desempenho dos seus sistemas.
Escalabilidade:
Softwares de código aberto à medida que uma empresa expande suas operações, ele pode ser ajustado para lidar com um aumento no volume de usuários, dados e transações sem comprometer o desempenho. A flexibilidade do Open Source permite que os sistemas sejam adaptados e otimizados continuamente, garantindo que a infraestrutura de TI possa crescer de forma eficiente e econômica, acompanhando todas as fases do crescimento de uma empresa.
Resolução Rápida de Problemas:
Diferente dos softwares proprietários, onde o suporte pode ser lento e centralizado, o Open Source disponibiliza de forma imediata uma vasta base de conhecimento e experiência contidos nas comunidades, onde é normal encontrar pessoas que já passaram pelo mesmo problema ou caso parecido, e ali vão trocando informações e trabalhando em conjunto para poder encontrar a melhor solução.
Transparência e Segurança:
E por último, mas não menos importante: com o código aberto, é possível saber exatamente quais dados estão sendo transferidos e para onde. A segurança dos softwares Open Source é reforçada pela transparência de seu código, permitindo que qualquer pessoa possa inspecioná-lo para identificar e corrigir vulnerabilidades rapidamente. Além disso, como muitos desenvolvedores e especialistas em segurança estão constantemente revisando o código, problemas podem ser detectados e resolvidos de forma mais ágil do que em softwares proprietários. Esta é inclusive uma das maiores vantagens observadas pelas empresas.
Conhecer um pouco mais sobre esse movimento e entender o tipo de impacto que ele causa tanto nas pessoas quanto nas empresas, no estilo de desenvolvimento e até mesmo na economia global foi, particularmente, um divisor de águas no meu processo de aprendizagem. Foi a primeira vez que me senti efetivamente "fazendo parte" de algo relacionado a tecnologia e é por isso que decidimos te apresentar para esse mundo mágico: onde a colaboração é regra e o crescimento é compartilhado.
Quando se trata de aprendizado, principalmente quando se é iniciante, há muita teoria para se aprender. Paradigmas de programação, conceitos, lógica e tantos outros assuntos que servem de base para qualquer que seja a linguagem escolhida, não há como fugir. Mas o Open Source pode ser seu aliado na hora de fixar e principalmente visualizar esses conteúdos na prática - mesmo que você ainda não trabalhe na área.
Vantagens Open Source no Aprendizado:
Aprendizado Prático: Iniciantes podem aprender examinando códigos de alta qualidade, além de contribuir em projetos reais. Sendo assim: toda contribuição é válida e não necessariamente pode ser feita em alguma linguagem de programação específica, há projetos que precisam de ajuda na escrita da documentação, tradução, organização e tantas outras tarefas simples de serem efetuadas.
Comunidade e Colaboração: Participar deste tipo de projeto oferece a oportunidade de receber feedback, colaborar com outros desenvolvedores e aprender com a experiência de profissionais mais experientes. Além disso, ao colaborar com projetos Open Source consequentemente sua rede de contatos (network) pode aumentar consideravelmente, e conhecer pessoas do meio pode ser um bom caminho para conseguir novas oportunidades.
Experiência Real: Trabalhar em projetos open source ajuda a ganhar experiência prática, o que é altamente valorizado no mercado de trabalho. Somando-se à tudo isso você ainda contribui para uma comunidade gigante, e pode gerar impacto na vida e trabalho de outras pessoas, não é demais!?
"Ah, mas eu não acho que desenvolver 'de graça' vai me trazer benefícios"
Então aqui vão as vantagens para a sua carreira - lembrando que, se as empresas estão ganhando dinheiro com todo esse ecossistema é altamente provável que elas também estarão de olho em profissionais que colaboram nesse meio.
Impacto do Open Source na Carreira
Portfólio e Visibilidade: Contribuições para projetos de Código Aberto podem ser exibidas como portfólio, demonstrando habilidades e comprometimento tanto com a comunidade quanto com os projetos.
Oportunidades de Emprego: Dificilmente a empresa irá fazer uma contratação se a pessoa desenvolvedora não tiver experiência alguma, seja para sua primeira oportunidade, ou quem sabe uma mudança de carreira dentro do próprio mercado de TI. Contribuir em projetos pode quebrar esse ciclo da não experiência e abrir portas para experimentações.
Desenvolvimento de Habilidades: Trabalhar em projetos open source ajuda a desenvolver habilidades técnicas e de colaboração, essenciais para qualquer desenvolvedor. As famosas "soft-skills" hoje super em alta no mercado.
Conclusão
Seja para você ampliar seus estudos, experimentar novos caminhos, conseguir aquela experiência prática ou se sentir parte de uma comunidade e impactar outras pessoas... Open Source é o caminho. Te encorajamos a seguir nesse caminho para melhorar o aprendizado contínuo e continuar a trazer muito mais inovação para o nosso dia a dia.
Pela definição, (em inglês: Open Source) se refere ao código-fonte de um software que está disponível gratuitamente para consulta, modificação e redistribuição. Ou seja: qualquer pessoa pode ver, usar e alterar o código conforme suas necessidades. É um modelo de desenvolvimento que incentiva a colaboração e permite que muitas pessoas de vários lugares do mundo contribuam e melhorem o software.
Bem, há inúmeras vantagens neste modelo, mas a característica que mais o diferencia de (além do custo) é a inovação. Softwares Open Source estão o tempo todo sendo analisados por pessoas de várias partes do globo, e essa diversidade acaba trazendo novos pontos de vista para os projetos. Há muitas empresas que trabalham com esse tipo de Software e, claro: fazem bastante dinheiro com ele. Então o fato de poder ser acessado por qualquer pessoa desenvolvedora não desvaloriza o produto final.
Então posso abandonar a teoria e correr pros braços aconchegantes do Open Source?
Se você se interessou pelo assunto, aqui vai mais um conteúdo incrível para você compreender um pouco mais sobre Open Source. Uma palestra ministrada pela , para o .
Antes de colocarmos a "mão na massa" é muito importante que você conheça alguns dos principais conceitos que utilizamos no Git, assim você já vai se ambientando e compreendendo os próximos passos!
Aqui você encontra a descrição do conteúdo do livro para cada capítulo!
Apresentação do Curso
Mapa do Curso
Qual a importância de conhecer a plataforma
Aprendizado constante com Open Source
Seção 1:
O que é? o que resolve?
A importância de se saber pelo menos o básico de Git
Ferramentas Associadas
O que é um controle de versionamento?
Controle de versão distribuído
Seção 2:
Instalação do Git
Principais comandos
Extensões
Indicação: Jogo “Oh my git” para entender sobre a linha do tempo (demo)
Qual a diferença entre Git e GitHub?
Apresentar a plataforma: o que podemos encontrar nela?
GitHub Features: ferramentas para desenvolvimento e manutenção de código
GitHub Free - contas pessoais (mostrar que apenas com a conta grátis há uma infinidade de ferramentas e opções)
GitHub Free - para organizações
Criação de uma conta pessoal no GitHub (demonstrativo)
Apresentação conta: settings, autenticação de 2F, barra lateral
Apresentação Home e notificações
O que são, porque existem
Criar um primeiro repositório (README, .gitignore) - demonstrativo na plataforma
Tópicos, labels, issues, geral (Repos)
Overview repositório já antigo
Overview aba CODE
Overview aba settings
Demonstração utilizando a README do profile criado
O que é Markdown?
Documentação oficial
Git clone
Adicionando a chave SSH
Qual a utilidade…
Como participar de outros projetos usando o git clone
Demonstrar como funciona e a importância
Explicar sobre as labels
Mostrar como funcionam as issues em projetos BRs existentes
Nomenclatura da Branch
Como abrir um Pull Request, review, merge (exemplo: primeiro repositório criado)
Assign
Criaremos alguns repositórios sem linguagem de programação alguma, para que os participantes possam treinar e colocar em prática tudo o que foi ensinado.
O quê são sistemas de controle de versão centralizados e distribuídos e quais são as suas diferenças
Os Sistemas de Controle de Versão Distribuídos (DVCS - Distributed Version Control Systems) são uma evolução dos sistemas centralizados. Neles, cada pessoa colaboradora faz a cópia do repositório central integralmente, obtendo assim o histórico completo do projeto em seu próprio computador.
Diferentemente dos sistemas centralizados, onde apenas a versão mais recente é disponibilizada, neste modelo, cada cópia (clone) contém não apenas os arquivos do projeto, mas também todos os metadados associados ao repositório original.
A estrutura distribuída foi criada para endereçar a maior parte dos problemas percebidos nos sistemas centralizados.
Um único ponto de falha coloca em risco os dados
No sistema centralizado, caso algo venha a acontecer com o servidor e o repositório central for comprometido, isso resulta em uma perda definitiva do código.
Já no sistema distribuído, como cada pessoa colaboradora possui uma cópia completa do repositório em seu computador, tendo acesso a todo o histórico, é possível restaurar o projeto a partir de suas cópias locais.
Necessidade de conexão com o servidor
As pessoas dependem do acesso contínuo ao servidor central para realizar operações de controle de versão no sistema centralizado. Se o servidor ficar inacessível, por exemplo, todas as atividades de trabalho ficam interrompidas.
No sistema distribuído, entretanto, não há essa dependência de conexão com o servidor. Isso significa que a maior parte do desenvolvimento pode ser realizada offline. Apenas as operações de enviar (push) e receber (pull) modificações que ficam restringidas a necessidade de uma conexão.
As pessoas colaboradoras têm acesso ao histórico completo do projeto em seus próprios computadores, permitindo que façam alterações diretamente em seus repositórios locais. Isso possibilita que realizem suas modificações como um conjunto de alterações, adiando o envio para quando estiverem online novamente.
Conexão lenta atrasa o desenvolvimento
Em sistemas centralizados, os usuários enfrentam dificuldades ao realizar mudanças devido à comunicação necessária com o servidor remoto, o que torna o processo mais lento, especialmente em conexões de rede lentas.
Por outro lado, em sistemas distribuídos, os usuários podem fazer alterações de forma ágil e autônoma em seus repositórios locais, permitindo trabalhar sem depender constantemente do servidor remoto, realizando suas modificações como um conjunto de alterações, adiando o envio para quando estiverem online novamente.
Poucos momentos estáveis para enviar mudanças (push)
Quando muitos pessoas precisam trabalhar na mesma parte do código, fica complicado decidir quando fazer as alterações. Se as mudanças ainda não estão estáveis, não podem ser enviadas para o local onde todos compartilham o código, então cada desenvolvedor precisa mantê-las guardadas no seu próprio computador até que estejam prontas.
Essa demora em compartilhar as mudanças pode atrasar o projeto e causar conflitos quando diferentes partes do código são mescladas. Isso acontece porque outros membros da equipe não conseguem ver as alterações que só existem no computador das outras pessoas. Quando finalmente as mudanças são enviadas para o local compartilhado, é preciso resolver esses conflitos rapidamente para que todos possam continuar trabalhando juntos.
Nos sistemas de controle de versão distribuído é mais fácil criar diferentes versões do código, chamadas de ramificações (branches). Isso porque cada pessoa tem uma cópia completa do histórico do projeto no seu próprio computador. Elas podem experimentar novas ideias rapidamente e pedir opiniões sobre o código antes de unir suas mudanças ao projeto principal.
Com menos pessoas trabalhando na mesma parte do código, os conflitos são menos comuns. Além disso, ter acesso ao histórico completo torna-se mais fácil encontrar erros, ver o que foi modificado e até voltar para uma versão anterior do código, se necessário.
Um sistema de controle de versão distribuído descentraliza o processo de gerenciamento de projetos, passando de um único repositório central ou servidor para um modelo onde cada membro da equipe possui uma cópia completa do projeto em seu próprio repositório local. Isso não apenas aprimora o fluxo de trabalho de desenvolvimento por meio de mesclagens e ramificações rápidas, mas também mitiga significativamente os riscos associados a uma falha no banco de dados central, garantindo que cada participante tenha uma cópia de backup do histórico completo.
Os DVSCs oferecem mais flexibilidade, segurança e eficiência em comparação com os sistemas centralizados. A integração deles no processo de desenvolvimento de software marcou um avanço fundamental na forma como as equipes colaboram e gerenciam seu histórico de controle de versão.
Pronto para se juntar ao maior centro de desenvolvimento do mundo? Descubra a grandiosidade do GitHub e por que é essencial fazer parte dele!
Adquirido pela Microsoft em 2008, o GitHub é muito mais do que apenas uma plataforma de hospedagem de código-fonte. Atualmente, é amplamente reconhecido como a plataforma líder para colaboração em desenvolvimento de software, sendo utilizada pelas principais empresas de tecnologia do mundo.
Com mais de 100 milhões de pessoas desenvolvedoras e mais de 420 milhões de repositórios, o GitHub é um verdadeiro hub global para a comunidade de desenvolvimento. Empresas como Meta, Spotify, Dell, Ford, 3M, entre tantas outras, confiam no GitHub para hospedar e colaborar em seus projetos de software.
Além disso, o GitHub se orgulha de ser a maior comunidade de código aberto do mundo. Seus repositórios abrigam muitas das principais soluções open source, como Mozilla, Linux, Python, entre outros. Essa vasta coleção de projetos open source oferece acesso ilimitado e gratuito, permitindo qualquer pessoa desenvolvedora aprenda, contribua e colabore - isso tudo em uma escala global.
Através do GitHub, pessoas desenvolvedoras têm a oportunidade não apenas de acessar uma enorme variedade de projetos, mas também de aprimorar suas habilidades, aprender com os melhores projetos e contribuir para o avanço da comunidade de software livre.
E não para por aí. O GitHub é mais do que uma plataforma de tecnologia - é um defensor da diversidade, inclusão e pertencimento. Com iniciativas como o MLH Fellowship e a GitHub Education, estão pavimentando o caminho para a próxima geração de desenvolvedores, tornando o desenvolvimento de software acessível para todos, independentemente de quem você é ou de onde vem.
Então, por que você deve investir seu tempo para aprender sobre o GitHub? Porque é mais do que apenas aprender uma ferramenta - é se tornar parte de uma comunidade global de inovadores, criadores e solucionadores de problemas. É abrir as portas para um mundo de oportunidades e adquirir habilidades que são valorizadas pelas principais empresas de tecnologia e fazer parte de uma comunidade que está moldando o futuro do desenvolvimento de software. É sobre aprender, colaborar e construir um futuro melhor juntos. Vamos?!
Ao final de cada Capítul, incluímos um glossário para facilitar a compreensão de novos termos. No final do curso, você encontrará um glossário completo com todos os termos que consideramos essenciais!
Autenticação de 2F
Autenticação de dois fatores, um método de segurança adicional.
Colaboração
Trabalho conjunto em projetos de software, permitindo múltiplos contribuidores.
Comunidade
Grupo de usuários que compartilham interesses comuns, especialmente em tecnologia.
Desenvolvedores
Profissionais que escrevem e mantêm código-fonte para software.
Desenvolvimento de software
Processo de criação, design, implantação e suporte de software.
Diretório
Estrutura utilizada para organizar arquivos em um computador ou um arquivo que contém referências a outros arquivos. Em muitos computadores, os diretórios são conhecidos como pastas ou gavetas, de modo análogo a uma mesa de trabalho ou ao tradicional arquivo de escritório.
Documentação oficial
Referência técnica oficial sobre como usar uma ferramenta ou linguagem.
Issue
Relato de bug, solicitação de recurso ou outras tarefas a serem resolvidas em um projeto.
Labels
Marcadores, tags utilizadas para marcar certos pontos do projeto.
Linguagem de programação
Código usado para criar programas de computador.
Linux
Sistema operacional de código aberto amplamente utilizado em servidores e desktops.
Networking
Estabelecimento de uma rede de contatos profissionais para troca de informações e suporte.
Plataforma
Ambientes virtuais que facilitam interações, transações e compartilhamento de informações entre indivíduos, instituições e empresas.
Portfólio
Conjunto de projetos e trabalhos que demonstram habilidades profissionais.
Profile
Perfil de usuário.
Python
Linguagem de programação de alto nível conhecida por sua simplicidade e legibilidade.
Repositório
Local onde o código-fonte é armazenado e gerenciado.
Review
Revisão (de código).
Settings
Configurações.
Soft skills
Habilidades interpessoais e de comunicação importantes no ambiente de trabalho.
Software livre
Software que pode ser usado, estudado, modificado e distribuído livremente.
Workflow (fluxo de trabalho)
Sequência de processos e tarefas necessárias para completar um projeto.
Atenção: os termos selecionados são explicados de acordo com o contexto específico de cada capítulo.
O quê são, para que servem e quais são suas principais funcionalidades.
Você consegue se lembrar ou imaginar como era pedir para alguém revisar um documento antes do surgimento de plataformas de edição de textos colaborativa, como Google Docs e Microsoft Word online?
A colaboração em documentos muitas vezes exigia o envio de versões por e-mail ou compartilhamento físico de arquivos em dispositivos de armazenamento, como pen drives. Isso tornava o processo de edição em equipe demorado e propenso a erros de versão.
E quando você precisava voltar para uma versão anterior? O processo era bastante inconveniente, pois você era obrigado a abrir individualmente cada um dos documentos antigos até encontrar a versão correta.
Ou você lembra como era quando se precisava escrever um documento em conjunto com uma ou mais pessoas?
Um dos artifícios mais utilizados era cada pessoa escrever de uma cor diferente para facilmente identificar o quê foi incluído por quem e ficar reenviando os arquivos ao longo da escrita. Um pouco rudimentar, não acha?
Ferramentas como o Google docs surgiram para facilitar estes tipos de tarefas. Com elas, fica muito fácil colaborar e revisar documentos em tempo real com muitas pessoas.
Essas plataformas mantêm um histórico detalhado de revisões, permitindo que os usuários vejam quem fez quais alterações e quando. Isso é útil para rastrear o progresso do trabalho, identificar quem fez determinadas edições e reverter para versões anteriores, se necessário.
Exatamente os mesmo problemas citados para escrita de documentos de texto ocorriam na escrita de documentos de código antes da existência dos sistemas de controle de versão (Version Control Systems - VCS).
Sistemas de controle de versão são ferramentas que rastreiam alterações em qualquer conjunto de arquivos de computador. É comumente utilizado no desenvolvimento de software para gerenciar e controlar as mudanças no código-fonte e na documentação de um projeto ao longo do tempo.
Eles permitem que várias pessoas trabalhem simultaneamente no mesmo projeto, facilitando a colaboração, rastreamento de alterações, identificação de problemas e reversão de modificações, entre outras funcionalidades.
Sistemas de controle de versão são essenciais para o desenvolvimento de software em equipe, pois ajudam a manter a integridade do código-fonte, facilitam a colaboração e aumentam a eficiência do desenvolvimento.
As principais funcionalidades oferecidas por sistemas de controle de versão incluem:
Reversão de alterações: Permite reverter para versões anteriores do código, útil para corrigir bugs ou desfazer alterações problemáticas.
Colaboração: Facilita o trabalho em equipe, permitindo que vários desenvolvedores contribuam para o mesmo projeto simultaneamente.
Auditoria e Rastreamento de alterações: Registra quem fez o que, quando e por quê em relação ao código e à documentação.
Ramificação e mesclagem: Permite que os desenvolvedores criem ramificações (cópias separadas do código) para desenvolver novos recursos ou corrigir bugs sem interferir no código principal. Posteriormente, as ramificações podem ser mescladas de volta ao código principal.
Agora que você entende o que são os Sistemas de Controle de Versão e a importância deles, te apresentamos o Git - a ferramenta mais utilizada pelos desenvolvedores para versionamento de código!
O Git é um sistema de controle de versão distribuído (DVCS) gratuito e de código aberto, desenvolvido para gerenciar iniciativas de todos os tamanhos com rapidez e eficiência.
Gratuito refere-se ao fato de que o usuário não precisa efetuar nenhum tipo de pagamento para utilizar o software. Já código aberto, significa que:
O código está disponível para consulta pública;
Recebe melhorias constantes por meio da colaboração;
Pode ser adaptado para necessidades diferentes;
Desde a sua criação, o Git se tornou extremamente popular e é amplamente usado por desenvolvedores em todo o mundo, tanto em projetos de código aberto quanto comerciais. Plataformas como GitHub, GitLab e Bitbucket, que hospedam os repositórios Git, contribuíram significativamente para essa popularidade, facilitando a colaboração e o compartilhamento de código.
Colaboração Efetiva: o Git permite uma colaboração organizada em projetos de software. Cada desenvolvedor pode trabalhar em diferentes partes do projeto sem se preocupar com conflitos, graças aos branches e merges.
Rastreamento de Mudanças: O Git mantém um histórico completo de todas as alterações feitas no projeto. Isso permite que desenvolvedores revertam mudanças, identifiquem problemas e entendam a evolução do software. A possibilidade de reverter mudanças e corrigir erros facilmente aumenta a confiança ao trabalhar em projetos complexos.
Segurança: Git armazena uma cópia completa do projeto em cada máquina que usa a ferramenta, garantindo que o projeto esteja seguro, mesmo se um servidor central falhar. Além disso, o uso do algoritmo SHA-1 garante a integridade dos dados, assegurando que todas as alterações são registradas e que o histórico de mudanças é rastreável e protegido contra alterações acidentais ou maliciosas.
Adaptabilidade: Conhecer Git demonstra que você está atualizado com as ferramentas modernas de desenvolvimento, um diferencial positivo no mercado de trabalho. Dominar essa ferramenta pode aumentar suas chances de conseguir um emprego ou uma promoção.
Eficiência no Desenvolvimento: Git facilita a experimentação de novas ideias sem comprometer o projeto principal, incentivando a inovação e o desenvolvimento de soluções criativas, além de que o uso frequente do Git contribui para o aprendizado contínuo, aprimorando habilidades de desenvolvimento.
Hoje, o Git é a melhor escolha para a maioria das equipes de software devido à sua funcionalidade, desempenho, segurança e flexibilidade. Ele se tornou um padrão de fato, amplamente adotado e suportado por uma vasta comunidade, além de contar com uma grande quantidade de ferramentas e serviços de software. Por esses motivos, escolhemos essa poderosa ferramenta para você aprender e utilizar junto com o GitHub. Juntos, Git e GitHub proporcionarão uma base sólida e versátil, abrindo inúmeras possibilidades para o seu crescimento e sucesso!
O quê são sistemas de controle de versão centralizados e distribuídos e quais são as suas diferenças
O Git, sistema de controle de versão que iremos utilizar nesse curso, é um sistema distribuído (Distributed Version Control System - DVCS). Para entender a motivação de como o Git foi construído e de como ele funciona, vale a pena conhecer primeiro como era feito antes dele.
A primeira solução para Sistemas de Controle de Versão consistiu em uma arquitetura centralizada, com um único repositório central onde todo o histórico de alterações e versões do código era armazenado.
Pense nesse repositório central como uma pasta gigante que contém todos os documentos do seu projeto. Não só a versão mais recente, mas também todas as versões anteriores e informações sobre cada uma delas. É como se fosse uma pasta que guarda toda a linha do tempo do seu projeto.
Agora, você pode estar se perguntando como várias pessoas poderiam trabalhar nesse projeto ao mesmo tempo. Bem, o repositório central normalmente fica em um outro computador (servidor), para que mais pessoas possam acessá-lo. Caso contrário, todos teriam que compartilhar o mesmo computador.
Cada pessoa que irá trabalhar no projeto precisa fazer uma cópia da versão mais recente para seu próprio computador, fazer suas mudanças e, em seguida, enviar de volta para o repositório central que está no servidor.
Vamos entender como seria o fluxo de trabalho com um exemplo.
Uma pessoa A e uma pessoa B decidem criar um blog. A pessoa A cria uma estrutura inicial do blog em seu computador e envia ("PUSH") essa versão para o repositório central.
A pessoa B se anima com o projeto e também quer contribuir, criando o seu primeiro blog post. Para isso, B precisa ter acesso à versão criada por A, que já está no repositório central no momento. B precisa fazer um "PULL", que nada mais é que fazer uma cópia da última versão do projeto que está no repositório central para a sua máquina local.
Agora, B tem acesso, em seu computador, ao projeto em sua versão mais atual. B escreve seu primeiro blog post e precisa enviar as mudanças de volta para o repositório central, para que A também possa ver o seu belo trabalho. B faz um "PUSH" do seu código, ou seja, envia uma cópia da sua versão para o repositório central
Tudo pronto! Temos no repositório central a versão mais recente do blog, a qual contém o post de B. A versão inicial de A também está lá, guardada caso alguém precise consultá-la para comparar diferenças, ou até mesmo para reverter alguma alteração.
Mas, e se A também estiver empolgado e não conseguir esperar por B? Ao mesmo tempo que B, A começa a escrever seu próprio post. Quando A tenta enviar seu código para o repositório central, percebe que B já enviou antes a sua versão.
E para piorar, A e B modificaram o mesmo arquivo! E agora?
Bom, é aí que entra em jogo umas das principais funcionalidades de um sistema de controle de versão: o auxílio no Gerenciamento de Conflitos. O sistema lida com as mudanças feitas por diferentes colaboradores no mesmo arquivo, evitando conflitos e garantindo uma integração suave das alterações. Isso é feito por meio de um processo chamado 'mesclagem', que combina o trabalho de todos de forma harmoniosa e mantém a consistência do projeto.
Dessa forma, A consegue tranquilamente enviar suas modificações sem comprometer em nada as mudanças feitas por B.
Repositório Centralizado: É o ponto central onde todo o código-fonte e histórico de versões são armazenados. Todos os desenvolvedores trabalham diretamente com este repositório para obter versões atualizadas do código e para enviar suas alterações.
PUSH e PULL: Os desenvolvedores fazem um PULL - "puxam" para si uma cópia do código do repositório central para trabalhar localmente em suas máquinas. Após fazerem suas alterações, eles dão PUSH e mandam suas modificações de volta para o repositório central.
Auxílio no Gerenciamento de Conflitos: Os sistemas centralizados gerenciam as mudanças concorrentes feitas por múltiplos desenvolvedores. Se dois desenvolvedores tentarem modificar o mesmo arquivo ao mesmo tempo, o sistema de controle de versão pode detectar e gerenciar essas conflitos.
Histórico de Versões: Um aspecto fundamental dos sistemas de controle de versão é a capacidade de acompanhar o histórico de alterações em um arquivo ao longo do tempo. Isso permite que os desenvolvedores voltem a versões anteriores do código, se necessário.
Exemplos de sistemas centralizados de controle de versão incluem o Subversion (SVN) e o Microsoft Team Foundation Version Control (TFVC). Embora os sistemas centralizados tenham sido amplamente utilizados no passado, muitas equipes estão migrando para sistemas de controle de versão distribuídos, como o Git, devido à sua flexibilidade, desempenho e recursos avançados que iremos começar a desvendar aos poucos daqui para frente.
Se os códigos antes foram isolados, agora é hora de juntar! O merge permite integrar as alterações feitas em uma branch de desenvolvimento de volta à branch principal (master
ou main
). Isso garante que as novas funcionalidades, correções ou melhorias feitas em branches secundárias estejam disponíveis na branch principal do projeto.
Mas as branches não param por aí, pois a maior função delas é serem linhas independentes de desenvolvimento em um repositório, assim podem conter versões paralelas do código sem afetar a branch principal (main). Além disso, as branches ajudam a organizar e gerenciar o fluxo de trabalho de uma equipe de desenvolvimento. Aqui estão algumas das funções mais comuns quando o assunto é branch:
Desenvolvimento Paralelo: As branches permitem que diferentes desenvolvedores trabalhem em diferentes funcionalidades ou correções simultaneamente, sem interferir no trabalho um do outro. Cada desenvolvedor pode ter sua própria branch para implementar e testar suas alterações.
Isolamento de Funcionalidades ou Correções: Cada branch representa uma unidade de trabalho isolada. Isso significa que as mudanças feitas em uma branch não afetam diretamente o código em outras branches até que essas mudanças sejam mescladas de volta à branch principal.
Testes e Experimentações: As branches também podem ser usadas para testar novas funcionalidades ou experimentações sem comprometer o código da branch principal. Se uma experimentação não der certo, ela pode ser descartada sem afetar o código principal.
Gerenciamento de Versões: As branches também podem ser usadas para gerenciar diferentes versões de um projeto. Por exemplo, uma branch pode ser usada para manter a versão atual do software enquanto outra branch é usada para desenvolver uma versão futura.
Desenvolvido em 2005 por - o famoso criador do kernel do sistema operacional - o Git nasceu justamente como uma solução para melhorar a colaboração no desenvolvimento de software, especialmente para o kernel do Linux. Antes do Git, o projeto usava outro sistema de controle de versão mas após alguns anos de uso a licença gratuita foi anulada. Ao procurar soluções gratuitas para versionamento de código, Linus percebeu que elas não atendiam às necessidades dos desenvolvedores, especialmente em termos de performance e flexibilidade.
Uma das grandes vantagens de utilizar esse tipo de sistema é a criação das branches, que são - como o próprio nome já explica - "ramificações" do código original. Sempre que você cria um novo repositório, uma Branch Principal é criada, e por padrão, o Git dá à essa branch o nome de main (você ainda pode encontrar algumas com o ). A branch main - em seu período inicial - contém todas as informações do repositório atual, com os mesmos arquivos e códigos.
Como instalar o Git nos 3 principais Sistemas Operacionais: Linux, Mac e Windows!
Antes de começar a usar o Git, você precisará instalá-lo no seu computador. A instalação varia de acordo com o sistema operacional que você está usando. Abaixo, você encontrará instruções para os três sistemas operacionais mais comuns. Siga apenas as instruções que correspondem ao seu caso:
Para informações mais detalhadas e atualizadas sobre o Git, consulte a . A documentação oficial oferece instruções completas, exemplos detalhados e soluções para problemas comuns, sendo um recurso valioso para o uso eficiente do Git.
Inclusive este é um bom hábito para iniciantes: sempre que estiver usando algum programa (linguagem de programação/biblioteca/framework...) que seja novidade para você, é interessante dar uma olhada na documentação oficial, que é onde você encontrar as instruções de uso, últimas versões, boas práticas, dicas e até fóruns com as dúvidas mais comuns referentes à ele.
Caso você tenha alguma dificuldade para fazer a instalação ou a atualização do Git, estamos disponíveis para te ajudar tanto no fórum quanto no grupo do telegram do treinamento ou no e-mail .
Um commit é uma "foto" do estado atual do repositório. Ele registra quais mudanças foram feitas, por quem e quando. Sendo uma parte fundamental do fluxo de trabalho do Git, permite o registro, acompanhamento e reversão de alterações no código-fonte de um projeto. Os commits são a base para o versionamento de código e colaboração eficaz entre desenvolvedores.
É a maior unidade de armazenamento, um local de que contém todos os seus códigos, arquivos e o histórico da revisão de cada arquivo - como se fosse uma grande pasta com todos esses arquivos e metadados. Ele pode ser conhecido também como repo, e ser local (no seu computador) ou remoto (em um servidor, como o GitHub).
Seu uso pode ser individual ou compartilhado com vários outros colaboradores, além de ter a possibilidade de ser privado (empresas, projetos pessoais...) ou público (uma das principais características de qualquer projeto que seja Open Source). Mas não se engane: mesmo quando a visualização do código é aberta ao público, para acessar o repositório principal você precisa ter uma permissão para poder fazer alterações nele, mas falaremos disso mais à frente!
main
é mesclada com a branch feature1
, recebendo os novos arquivos e atualizações na diretamente na branch principal após o merge.main
possui todos os arquivos e dados da pasta inicial (principal).main
continua contendo a mesma "pasta inicial", mas o Desenvolvedor Jonas e a Desenvolvedora Claudia possuem branches diferentes, cada um desenvolvendo sua especialidade.main
segue igual, enquanto isso, na branch feature1
acontecem atualizações e a criação de uma nova funcionalidade.tests1.
Depois de um tempo, eles não se comportaram da forma esperada, foi mais fácil de deletar a branch sem fazer nenhuma alteração na branch main
. main
) - que contém a primeira versão do código (1.0.0), mais duas: uma chamada tests1
e outra que contém a versão 2.0.0
. A branch main recebe um merge da tests1,
você consegue perceber quais as mudanças?Você pode instalar o Git no Linux de maneira simples usando o Terminal. Basta usar a ferramenta de gerenciamento de pacotes da sua distribuição.
Procure por um aplicativo de prompt de comando chamado "Terminal".
Depois de abrir seu aplicativo de terminal, digite:
A saída irá dizer qual versão do Git está instalada, ou irá alertar que o git é um comando desconhecido. Se for um comando desconhecido, continue lendo para descobrir como instalar o Git.
Como você pode perceber: a minha versão está um pouco desatualizada, mas não há problemas quanto a isso: o interessante é se preocupar sempre no primeiro número da versão, onde entram as maiores mudanças - chamadas de "Majors". Então V 2.34.1 não irá causar um problema tão grande quanto se no meu computador eu estivesse com a V 1.1.0!
Feita a verificação, se o Git ainda não está instalado na sua máquina você precisará instalá-lo. você precisa seguir as instruções nos próximos passos. Caso contrário, pode pular direto para a próxima seção 2.5 Interagindo com o Git.
Se você não sabe qual distribuição do Linux está usando, siga estes passos:
Digite o comando: No terminal, digite o seguinte comando e pressione Enter
:
O comando lsb_release -a
fornecerá informações sobre a distribuição. Veja um exemplo de output:
Distribuições Comuns:
Ubuntu: O campo Distributor ID
mostrará "Ubuntu".
Debian: O campo Distributor ID
mostrará "Debian".
Fedora: O campo Distributor ID
mostrará "Fedora".
Arch Linux: Pode não ter lsb_release
instalado por padrão. Caso não tenha, siga as intruções do próximo passo (c).
Se você estiver usando Arch Linux ou uma distribuição que não tenha lsb_release
instalado por padrão, use este comando:
O output será algo assim:
Depois de identificar a sua distribuição, use o comando apropriado para instalar o Git:
Até o Fedora 21:
A partir do Fedora 22:
Para verificar se o Git foi instalado corretamente, digite:
Isso deve exibir a versão do Git instalada, como por exemplo:
Pronto! O Git está instalado e pronto para uso no seu sistema Linux.
Abra o Terminal, você pode encontrá-lo em Finder > Aplicativos > Utilitários > Terminal
Depois de abrir seu aplicativo de terminal, digite:
A saída irá dizer qual versão do Git está instalada, ou irá alertar que o git é um comando desconhecido. Se for um comando desconhecido, continue lendo para descobrir como instalar o Git.
Como você pode perceber: a minha versão está um pouco desatualizada, mas não há problemas quanto a isso: o interessante é se preocupar sempre no primeiro número da versão, onde entram as maiores mudanças - chamadas de "Majors". Então V 2.34.1 não irá causar um problema tão grande quanto se no meu computador eu estivesse com a V 1.1.0!
Execute o seguinte comando no terminal:
Siga as instruções no Terminal para concluir a instalação.
Ainda no Terminal, execute o seguinte comando:
O Homebrew irá baixar e instalar a versão mais recente do Git para você.
Após a instalação, verifique se o Git foi instalado corretamente executando:
O Terminal deve exibir a versão do Git instalada, como por exemplo:
O comando git
é o ponto de entrada para todas as operações do Git. Ele é utilizado para invocar quaisquer outros comandos disponíveis no Git. Para utilizá-lo, basta digitar no terminal de comando git
seguido pelo nome do comando que deseja executar e quaisquer argumentos necessários.
A estrutura básica para utilizar o comando git
é a seguinte:
git comando [opções] [argumentos]
git: A palavra-chave que inicia todos os comandos do Git.
comando: A ação específica que você deseja executar.
Por exemplo, para inicializar um novo repositório Git, você digita git
init
. Isso cria um novo repositório Git vazio.
[opções]: São como ajustes extras que você pode usar com um comando.
Por exemplo, quando você quer adicionar todas as mudanças feitas nos arquivos ao índice do Git, você usa o comando git add
com a opção all
: git
add
--all
. Isso significa que você está dizendo ao Git para adicionar todas as mudanças, não importa quais arquivos foram modificados.
[argumentos]: São as entradas sobre as quais você quer que o comando aja.
Por exemplo, se você quer adicionar um arquivo específico para o próximo commit, você diz ao Git qual arquivo usar como um argumento. Então, o Git sabe exatamente com o que você está lidando: git
add
arquivo.txt
A partir de agora, vamos adotar a seguinte convenção de cores para facilitar a identificação:
roxo para identificar git
laranja para identificar o comando
azul para identificar [opções]
verda para identificar [argumentos]
Os colchetes [ ]
indicam que tanto opções quanto argumentos são opcionais, ou seja, podem haver casos em que nem um nem outro são necessários. Um exemplo é o git init, que veremos logo em seguida.
Em resumo, toda interação com o Git é feita através do comando git
. Ele é o seu meio de comunicação com o Git e permite que você execute uma ampla variedade de tarefas de controle de versão em seu projeto.
IMAGEM
Curiosidade: O Git foi originalmente desenvolvido para versionar o sistema operacional Linux! É um projeto de código aberto maduro e com manutenção ativa desenvolvido em 2005 por Linus Torvalds, o famoso criador do kernel do sistema operacional Linux.
Para mais opções de instruções de como instalar o Git em outros vários sistemas Unix, veja na página do Git, em .
Existem inúmeras formas de instalar o Git no MacOS. Para iniciantes, o jeito mais fácil é utilizando o , que é um gerenciador de pacotes consideravelmente simples de usar. Aqui está o passo a passo.
Feita a verificação, se o Git ainda não está instalado na sua máquina você precisará instalá-lo. você precisa seguir as instruções nos próximos passos. Caso contrário, pode pular direto para a próxima seção .
Para mais opções de instruções de como instalar o Git em outros vários sistemas Unix, veja na página do Git, em .
Caso já tenha seguido as instruções da seção , não é necessário instalar e nem configurar mais nada para ter acesso à Git CLI. Apenas abra o terminal e todos os comandos git já estão disponíveis para você.
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando git
, consulte a .
Aqui estão os links que consideramos relevantes na construção deste Capítulo. Disponibilizamos caso você queira ampliar seus estudos de boas fontes :)
Depois de abrir seu aplicativo de terminal, digite:
A saída irá dizer qual versão do Git está instalada, ou irá alertar que o git é um comando desconhecido. Se for um comando desconhecido, continue lendo para descobrir como instalar o Git.
Como você pode perceber: a minha versão está um pouco desatualizada, mas não há problemas quanto a isso: o interessante é se preocupar sempre no primeiro número da versão, onde entram as maiores mudanças - chamadas de "Majors". Então V 2.34.1 não irá causar um problema tão grande quanto se no meu computador eu estivesse com a V 1.1.0!
Feita a verificação, se o Git ainda não está instalado na sua máquina você precisará instalá-lo. você precisa seguir as instruções nos próximos passos. Caso contrário, pode pular direto para a próxima seção 2.5 Interagindo com o Git.
Clique no botão de download para Windows.
O download deve começar automaticamente. Aguarde até que o arquivo seja baixado completamente.
Após o download, abra o arquivo executável (.exe
) do instalador do Git.
Siga as instruções do assistente de instalação. Você pode deixar as opções padrão ou personalizar de acordo com suas preferências.
Durante a instalação, você será solicitado a fazer algumas escolhas, como a localização de instalação e a seleção de componentes.
Para a maioria dos usuários, as opções padrão funcionam bem. Basta seguir as instruções na tela.
Após concluir a instalação, você pode fechar o instalador.
O Git agora está instalado no seu sistema Windows.
Após a instalação, verifique se o Git foi instalado corretamente executando:
O Terminal deve exibir a versão do Git instalada, como por exemplo:
Windows: abra o prompt de comando do Windows ou "Git Bash".
Acesse o site oficial do Git: .
Para mais opções de instruções de como instalar o Git em outros vários sistemas Unix, veja na página do Git, em .
Como iniciar um novo repositório Git usando o comando git init. Essa etapa junto com o comando git clone, que será explicado mais a frente, são fundamentais para começar a trabalhar com o Git.
O comando git init cria um novo repositório Git. Ele pode ser utilizado principalmente para dois fins:
Para converter um projeto existente, não versionado, em um repositório Git ou;
Para inicializar um novo repositório vazio.
Imagens 1 e 2 init
A maioria dos outros comandos do Git não está disponível fora de um repositório inicializado, então este é geralmente o primeiro comando que você executa em um novo projeto.
O quê o comando git init faz por debaixo dos panos é criar uma pasta oculta chamada .git
dentro da pasta de trabalho atual.
Essa pasta é onde o Git armazenará todos os dados sobre as versões dos arquivos, as alterações feitas e outras informações importantes para o controle de versão.
imagem: pasta .git apontando para várias coisas que ela contém
Se você excluir essa pasta, o Git perderá a capacidade de acessar e gerenciar todas as informações essenciais do seu repositório. Portanto, é crucial que essa pasta sempre esteja presente para garantir o funcionamento adequado do Git.
E por que a pasta.git
foi citada acima como uma pasta oculta?
Bem, qualquer diretório ou arquivo que começa com um ponto (.) é tratado como escondido. Isso significa que, por padrão, ele não aparecerá nas listagens comuns de diretórios.
Por exemplo, se você usar o comando ls
no terminal Unix, os diretórios e arquivos ocultos não aparecerão. Para vê-los, você precisa usar ls -a
.
Essa ocultação do diretório .git
tem várias vantagens. Primeiro, mantém sua pasta de trabalho limpa e organizada, o que é especialmente útil em projetos grandes com muitos arquivos e diretórios. Imagine o caos se você tivesse que lidar com todos esses arquivos extras visíveis o tempo todo!
Além disso, esconder o diretório .git
ajuda a protegê-lo contra modificações acidentais. Mexer nos arquivos dentro do diretório .git
manualmente pode corromper o repositório, causando sérios problemas no funcionamento do Git.
No exemplo acima, primeiro usamos o comando ls
, que lista os arquivos e diretórios no diretório atual. Como você pode ver, inicialmente não há nada listado.
Depois, usamos o comando ls -a
, que mostra todos os arquivos e diretórios, incluindo os ocultos (aqueles que começam com um ponto), e vemos apenas .
e ..
.
Então, executamos o comando git init, que inicializa um repositório Git vazio e cria o diretório oculto .git
.
Quando usamos novamente o comando ls
, não vemos nada de diferente, pois .git
é oculto. Mas ao usar ls -a
novamente, a pasta .git
aparece!
O formato base do comando git init é:
git init [opções] [diretório]
em que diretório (opcional) se refere ao caminho do diretório onde você quer inicializar o repositório. Se você omitir o diretório, o Git inicializará um repositório no diretório atual.
Nesta seção, mergulharemos nas diferentes maneiras de interagir com o Git, seja através da Interface de Linha de Comando (CLI) ou da Interface Gráfica do Usuário (GUI).
O Git é essencialmente um sistema de controle de versão. No entanto, não oferece uma maneira direta para que os usuários interagirem com ele. É necessária uma ferramenta adicional, chamada de cliente (Git Client), que provenha essa ponte entre o usuário e o Git em si.
Imagem: git <--> git client <--> usuário
Existem várias clientes que facilitam a comunicação entre o Git e o usuário. Alguns deles fornecem uma interface de linha de comando (CLI), enquanto outros oferecem uma interface gráfica do usuário (GUI):
Interface de Linha de Comando (Command Line Interface - CLI): Neste formato, os usuários interagem com o Git digitando comandos diretamente em um terminal ou prompt de comando. Aqui, os comandos são textuais e exigem que o usuário escreva para executar várias tarefas.
Interface Gráfica do Usuário (Graphical User Interface - GUI): Esta abordagem é mais visual, permitindo que os usuários interajam com o Git clicando em botões, ícones e menus em um aplicativo gráfico. Aqui, as ações são realizadas de forma mais intuitiva, sem a necessidade de digitar comandos.
Imagem: capturas de telas de diferentes clientes GUI com seus repectivos nomes/links
Por ser a solução oficial, ela será sempre a mais atual e a única que fornecerá a capacidade de executar todos os comandos do Git. A maioria dos clientes com interfaces gráficas, por exemple, implementam apenas um subconjunto das funcionalidades do Git com o intuito de simplificar a utilização.
Se uma pessoa souber como utilizar a Git CLI, provavelmente também conseguirá facilmente entender como utilizar outros cliente com interfaces gráficas, enquanto o contrário nem sempre é verdadeiro.
Embora a escolha do cliente seja uma questão de preferência pessoal, optar pela CLI oficial também significa que todos os usuários já terão as ferramentas de linha de comando prontas para uso, sem a necessidade de qualquer outra instalação ou configuração.
Caso, ainda sim, opte-se por utilizar um cliente com interface gráfica, aqui se encontram várias opções disponíveis:
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando git
init
, consulte a .
Neste curso, utilizaremos o cliente oficial do Git: a . A motivação por trás dessa escolha é:
Estes são os termos que consideramos importantes na compreensão total do Capítulo 2. Ao final do curso, você encontrará um glossário completo com todos os termos que consideramos essenciais!
Alias
Atalhos personalizados para comandos Git.
Arquitetura centralizada
Modelo onde há um único ponto central (como um servidor) que armazena todo o histórico de versões e alterações do código.
Banco de dados central
Estrutura que armazena todas as informações e histórico de um projeto em sistemas de controle de versão centralizados.
Bugs
Erros ou falhas no código de software que causam comportamento inesperado ou defeituoso.
CLI (Command Line Interface)
Interface de linha de comando onde os usuários interagem com o Git digitando comandos.
Código aberto
Software cujo código-fonte está disponível para ser visualizado, modificado e distribuído.
Código-fonte
O conjunto de instruções escritas em linguagem de programação que compõem um programa de computador.
Colaboradores
Pessoas que contribuem para um projeto de desenvolvimento de software.
Comando
Instrução dada ao computador para realizar uma tarefa específica.
Configuração Global
Configurações que se aplicam a todos os projetos Git no sistema.
Configuração Local
Configurações que se aplicam apenas a um projeto Git específico.
Escopo
A abrangência ou aplicação de uma configuração, podendo ser global ou local.
Fork
Cópia independente de um repositório que permite desenvolvimento separado.
GitHub/GitLab/Bitbucket
Plataformas que hospedam repositórios Git e facilitam a colaboração.
GUI (Graphical User Interface)
Interface gráfica do usuário onde interações com o Git são feitas clicando em botões e menus.
Histórico de Versões
Registro das alterações feitas em um arquivo ao longo do tempo.
Integridade dos dados
Garantia de que os dados não foram alterados de maneira não autorizada.
Interface gráfica
Interface de usuário que permite interação com o software através de elementos visuais como janelas, ícones e menus.
Isolamento
Manter alterações em uma branch separada para evitar interferência com outras branches.
Kernel
Núcleo do sistema operacional que gerencia os recursos do sistema e a comunicação entre hardware e software.
Merge
Processo de integrar alterações de uma branch de volta para a branch principal.
Metadados
Dados que descrevem outros dados, como informações sobre um arquivo (autor, data de criação, etc.).
Rastreamento de Mudanças
Monitoramento de alterações no código ao longo do tempo.
Ramificações (Branches)
Cópias separadas do código que permitem o desenvolvimento de novos recursos sem afetar o código principal.
Repositório (repo)
Local onde o código, arquivos e histórico de revisão são armazenados.
Reversão
Processo de desfazer mudanças no código.
.git
Pasta oculta criada ao inicializar um repositório Git que armazena dados de versão.
Saída/Entrada
Dados enviados pelo sistema (saída) ou recebidos pelo sistema (entrada).
Servidor remoto
Computador ou sistema centralizado onde o repositório principal de um projeto de software é hospedado e acessado remotamente por desenvolvedores.
SHA-1
Algoritmo de hash que garante a integridade dos dados no Git.
Subversion (SVN)
Exemplo de VCS centralizado usado anteriormente.
Atenção: os termos selecionados são explicados de acordo com o contexto específico de cada capítulo.
Neste capítulo, vamos explorar como usar o Git localmente, sem a necessidade de uma conexão com a internet. Ao aprender a usar o Git apenas no seu ambiente local, você entenderá os conceitos fundamentais que são essenciais para trabalhar com o código antes de interagir com repositórios remotos, como o GitHub.
Uma das grandes vantagens do Git é que ele pode funcionar sem estar conectado à internet. Isso acontece porque o Git é um sistema de controle de versão distribuído (DVCS), o que significa que cada repositório é uma cópia completa de todo o histórico de alterações do projeto. Com isso, você pode realizar operações como commits, branches e merges localmente, sem depender de servidores externos.
Existem várias razões pelas quais você pode querer trabalhar com Git apenas no seu computador, sem interagir com um repositório remoto:
Trabalho Offline: Em muitas situações, como em viagens ou quando há problemas de conexão, o Git permite que você continue trabalhando sem depender de servidores externos.
Desenvolvimento Inicial: Quando você começa um projeto, talvez não precise de colaboração imediata. Você pode desenvolver localmente e, quando o projeto estiver pronto, decidir enviá-lo para um repositório remoto.
Testar Funcionalidades: Trabalhar localmente te permite testar e experimentar novas funcionalidades sem impactar outras versões ou usuários até que esteja pronto para compartilhar com a equipe.
O Git é independente do GitHub, ou qualquer outro serviço remoto. Mesmo sem uma conta no GitHub, GitLab ou Bitbucket, você pode usar o Git para versionar o código e controlar o histórico de alterações do seu projeto localmente. O GitHub apenas fornece uma plataforma para hospedar repositórios remotos, mas o Git, em si, pode ser totalmente operado no seu computador.
Para trabalhar remotamente, é essencial que você tenha um bom domínio das operações locais do Git. Quando você interage com um repositório remoto, está basicamente sincronizando alterações feitas localmente com um servidor, e isso exige um entendimento claro de como funcionam os commits, branches, merges, e como você organiza o código no seu ambiente local.
Além disso, muitos problemas ao trabalhar com repositórios remotos surgem justamente da falta de compreensão das operações locais. Você precisa ser capaz de resolver conflitos, revisar o histórico de alterações e fazer commits corretamente antes de enviar seu código para um repositório remoto. Portanto, dominar as operações locais do Git é o primeiro passo para aproveitar ao máximo o Git, seja de forma local ou remota.
Neste capítulo, vamos dar os primeiros passos para entender como controlar o seu código no seu ambiente local, preparando você para avançar para o uso de repositórios remotos no futuro.
Os comandos: git add, git status e git commit são usados em conjunto para salvar uma foto do estado atual de um projeto Git.
O comando git add é usado para preparar mudanças feitas nos arquivos do seu projeto para serem incluídas no próximo commit.
Modificar arquivos
Primeiro, você faz alterações nos arquivos do seu projeto. Essas mudanças podem incluir a edição de arquivos existentes, a adição de novos arquivos ou a exclusão de arquivos.
Adicionar à Área de Preparação
Quando você está satisfeito com as alterações e deseja incluí-las no próximo commit, você usa o comando git add para mover essas mudanças para a área de preparação (staging area).
Exemplo: Se você editou um arquivo chamado index.html
, você usaria git add index.html para preparar essas alterações.
O formato base do comando git add é:
git add arquivo
Adicionar um arquivo específico:
git add index.html
Prepara as mudanças feitas em index.html
para o próximo commit.
Adicionar uma pasta específica:
git add images/
Prepara todas as mudanças feitas dentro da pasta images/
para o próximo commit.
Adicionar vários arquivos de uma vez:
git add index.html style.css script.js
Prepara as mudanças feitas em index.html
, style.css
e script.js
para o próximo commit.
Adicionar todos os arquivos modificados
git add .
Prepara todas as mudanças feitas em todos os arquivos do diretório atual e seus subdiretórios para o próximo commit.
Importante: Um erro muito comum entre iniciantes é usar o comando git add . sem revisar as mudanças, o que pode levar a adicionar e comitando arquivos indesejados. Prefira adicionar arquivos individualmente (git add arquivo) para ter mais controle sobre o que está sendo versionado.
O comando git add não altera o repositório de maneira significativa; ele apenas move as mudanças para a área de preparação (staging area). Isso informa ao Git que você deseja incluir essas alterações no próximo commit. No entanto, as mudanças não são realmente registradas no repositório até que você execute o comando git commit.
Portanto, git add é uma etapa intermediária que permite que você revise e selecione as mudanças antes de salvá-las permanentemente no repositório.
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando git
add
, consulte a .
O comando git commit é utilizado para salvar as alterações feitas no repositório. Pense no git commit como um comando para salvar, mas ele é especial porque pode salvar várias alterações de uma vez, não apenas uma.
O commit funciona como uma câmera que tira uma "foto" (ou "snapshot") do seu projeto naquele exato momento. Essa "foto" captura todas as mudanças que foram preparadas (ou "staged") usando o comando git add, além de tudo que já estava presente no repositório anteriormente. Esses "fotos" podem ser consideradas versões "seguras" do projeto — o Git nunca as alterará, a menos que você solicite explicitamente.
Antes da execução do git commit, o comando git add é utilizado para promover ou "preparar" as alterações no projeto que serão armazenadas em um commit. Esses dois comandos, git commit e git add, estão entre os mais frequentemente utilizados.
Quando você faz um commit, as mudanças são salvas localmente no seu computador. Isso significa que elas ainda não estão disponíveis para outras pessoas. As mudanças ainda não estão presentes no repositório central.
imagem:
Vantagens de alterações locais:
Independência: Você pode trabalhar de forma independente e fazer quantas mudanças precisar sem afetar o trabalho de outras pessoas.
Segurança: Você tem controle total sobre quando e como compartilhar suas alterações, permitindo que você refine e teste seu trabalho antes de disponibilizá-lo.
Uma das características mais importantes do Git é que ele salva "snapshots" (fotos) do projeto, não apenas as diferenças entre as versões. Isso significa que cada commit é uma cópia completa do estado do projeto naquele momento.
Benefícios dos snapshots:
Segurança: Cada commit é uma versão completa e segura do projeto. Se algo der errado, você pode sempre voltar a um estado anterior.
Histórico Claro: Ter snapshots completos facilita entender o estado do projeto em qualquer ponto no tempo.
Restauração Simples: Se precisar voltar a um estado anterior, você tem uma imagem completa do projeto, sem precisar recompor todas as mudanças uma por uma.
O formato base do comando git commit é:
git commit [opções]
Realizar o commit do snapshot preparado
git commit
Isso abrirá um editor de texto solicitando uma mensagem de commit. Após inserir uma mensagem, salve o arquivo e feche o editor para criar o commit real.
Criar imediatamente um commit com uma mensagem de commit fornecida
git commit -m "mensagem do commit"
Por padrão, git commit abrirá o editor de texto localmente configurado e solicitará a inserção de uma mensagem de commit. Passar a opção -m irá dispensar o prompt do editor de texto em favor de uma mensagem inline.
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando git
commit
, consulte a .
Nesta seção, exploraremos como configurar o Git para suas necessidades. Você aprenderá como usar o comando git config para personalizar seu ambiente de desenvolvimento.
O comando git config é usado para configurar o Git no seu computador. Neste contexto, entenda configurar como customizar ou personalizar o Git de acordo com suas preferências.
Existem duas maneiras de configurar o Git no seu computador:
Configuração Global: Essas configurações se aplicam a todos os seus projetos Git no sistema. Elas são armazenadas no arquivo .gitconfig
no diretório do usuário. No Windows, você pode encontrá-lo em C:\Users\maria
, no macOS em /Users/maria
, e no Linux em /home/maria
, onde "maria" é o nome do usuário neste exemplo.
Configurações globais são úteis para definir preferências pessoais que se aplicam a todos os seus projetos.
Configuração Local: Essas configurações são específicas para um projeto Git individual. Elas são armazenadas no arquivo .git/config
dentro do diretório do projeto. Configurações locais sobrescrevem as configurações globais quando ambas são definidas, permitindo personalização por projeto.
Você pode escolher entre aplicar uma configuração globalmente para todos os seus projetos ou/e localmente para um projeto específico, oferecendo flexibilidade na personalização das configurações do Git de acordo com suas necessidades.
imagem: configs globais vs locais. Onde o arquivo fica localizado e a que se aplica
O formato base do comando git config é:
git config [opções] chave valor
Em que:
[opções] (opcional): define o escopo do comando ou fornecem outros modificadores. O escopo pode ser, por exemplo,--global
para aplicar a configuração a nível global ou --local
para aplicar a configuração apenas ao repositório atual.
chave: se refere ao nome da configuração que você deseja definir ou modificar. Exemplos: user.name, user.email, core.editor.
valor: se refere ao valor que você deseja atribuir à chave. Exemplos: "Seu Nome", "seu.email@exemplo.com", "nome-do-editor".
Essas são algumas das propriedades que podem ser configuradas:
user.name
: Define o nome de usuário associado aos commits.
É como você se identifica nos commits, então outros sabem quem fez as alterações.
Exemplo definindo nome do usuário global como maria
:
git config --global user.name "Maria"
user.email
: Define o email associado aos commits.
É o seu endereço de email associado aos commits para que outros possam contatá-lo se necessário.
Exemplo definindo email do usuário global como maria@exemplo.com
:
git config --global user.email "maria@exemplo.com"
core.editor
: Define o editor de texto usado para mensagens de commit.
É o programa que você usa para escrever mensagens de commit.
Exemplo definindo o editor de texto padrão global como o Visual Studio Code:
git config --global core.editor "code --wait"
color.ui
: Ativa ou desativa a coloração na saída do Git.
Deixa as mensagens do Git mais coloridas para que você possa identificar informações mais facilmente.
Exemplo ativando globalmente a coloração na saída do Git:
git config --global color.ui true
alias.*
: Define atalhos personalizados para comandos Git.
São atalhos personalizados para que você possa digitar menos ao usar certos comandos Git.
Exemplo criando um atalho global "ci"
para o comando 'commit':
git config --global alias.ci commit
init.defaultBranch
: Define o nome padrão do branch inicial.
Define o nome padrão do branch inicial quando você cria um novo repositório.
Exemplo definindo o nome padrão do branch inicial como 'dev' para um projeto específico:
git config --local init.defaultBranch dev
Configurar diferentes e-mails no Git pode ser super útil, especialmente quando você tem uma conta pessoal e outra da empresa. Vamos ver como essa configuração global e local pode fazer a diferença no seu dia a dia!
Imagine que você trabalha em vários projetos, tanto pessoais quanto profissionais. Usar a configuração global do Git permite que você configure um e-mail padrão que será usado em todos os repositórios. Isso é ótimo para simplificar as coisas, mas e se você quiser separar suas identidades? É aqui que a configuração local entra em cena, e é super fácil de fazer!
Vamos começar com a configuração global. Digamos que você queira usar seu e-mail pessoal como padrão. Basta abrir o terminal e digitar:
Agora, todos os seus commits em qualquer repositório vão usar este e-mail. Mas o que acontece quando você está trabalhando em um projeto da empresa e precisa usar seu e-mail corporativo? Sem problemas! Você pode configurar um e-mail específico apenas para esse projeto.
Aqui está como fazer isso. Vá para o diretório do seu projeto da empresa:
Pronto! Agora, todos os commits feitos nesse repositório usarão seu e-mail corporativo.
Por exemplo este commit será associado ao e-mail "seu-email@empresa.com":
E este ao e-mail "seu-email@pessoal.com":
Assim, você mantém suas identidades digitais separadas e claras, tanto no ambiente pessoal quanto no profissional. Configurar esses e-mails é fácil e faz toda a diferença na organização do seu trabalho.
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando git
config
, consulte a .
O comando git log serve para mostrar o histórico de commits de um repositório. Ele exibe uma lista de commits no histórico atual do branch, incluindo detalhes como o autor, a data, a mensagem do commit e o identificador único (hash) do commit. É comumente usado para navegar pelo histórico de commits do projeto e entender as mudanças ao longo do tempo.
O formato base do comando git log é:
git log [opções]
Exibir o histórico completo de commits:
git log
Lista todos os commits do repositório com detalhes como autor, data e mensagem do commit.
Exibir o histórico de commits de forma resumida::
git log --oneline
Mostra uma versão compacta do histórico, exibindo apenas o hash abreviado e a mensagem do commit.
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando git
log
, consulte a .
Os comandos: git add, git status e git commit são usados em conjunto para salvar uma foto do estado atual de um projeto Git. Os comandos git status e git log são utilizados para entender a evolução do repositório, mostrando o estado atual e o histórico de commits, respectivamente.
tracked (rastreado): um arquivo que já foi preparado ou confirmado;
Estados de um arquivo tracked:
Committed: Tracked e sem mudanças - salvo.
Modified: Tracked e com mudanças.
Staged: Tracked, com mudanças prontas para commit.
untracked (não rastreado): um arquivo que não foi preparado nem confirmado.
git add é usado para selecionar quais mudanças serão incluídas no próximo commit. Ele prepara as alterações para serem registradas no histórico do projeto.
git commit após utilizar o git add para preparar as mudanças, o git commit salva essas alterações no repositório como uma "foto" do estado atual do projeto. Isso permite que você mantenha um registro claro do progresso do seu trabalho.
As alterações são salvas localmente, permitindo que você trabalhe de forma independente.
Git usa "snapshots" completos em vez de apenas diferenças, oferecendo mais segurança e um histórico claro do projeto.
São operações que podem ser executadas a qualquer momento e que auxiliam a entender o estado atual e o histórico do seu repositório
git status exibe o estado atual do diretório de trabalho e da área de stage, mostrando quais arquivos foram modificados, quais estão prontos para serem confirmados (staged) e quais não estão sendo rastreados pelo Git.
git log mostra o histórico de commits do repositório, exibindo detalhes como o autor, a data, a mensagem do commit e o identificador único (hash) do commit. É útil para navegar pelo histórico de commits do projeto e entender as mudanças ao longo do tempo.
git diff exibe as diferenças entre as alterações feitas nos arquivos em relação ao último commit. É útil para visualizar as mudanças antes de prepará-las para um commit
Em seguida, veremos um exemplo prático de como esses comandos funcionam.
Crie uma pasta no seu computador chamada de meu-repo
.
Confira que a pasta foi criada com sucesso. A pasta meu-repo
deve estar listada no resultado do comando.
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Entre na pasta recém criada.
Inicialize essa pasta como um repositório com o comando git init.
Confira que a pasta oculta .git
foi criada. A pasta .git
deve estar listada no resultado do comando.
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Execute o comando git status para verificar o estado atual do diretório de trabalho e da área de stage.
O resultado deve mostrar que não consta nada para ser commitado, nada na área de stage e não há nada que não está sendo rastreado.
Execute o comando git log para verificar o histórico de commits do repositório
Um erro será mostrado, uma vez que nenhum commit foi realizado ainda neste repositório.
Crie um arquivo chamada arquivo.txt
contendo a palavra "cumbuca". Você pode fazer isso via comando de terminal ou via um editor de texto. Este é o comando para criar via terminal.
Liste os arquivos na sua pasta novamente. O arquivo arquivo.txt
deve estar listada no resultado do comando.
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Verifique o conteúdo do arquivo. O resultado deve ser cumbuca
.
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Execute o comando git status para verificar o estado atual do diretório de trabalho e da área de stage.
Perceba que o arquivo arquivo.txt
agora deverá estar sinalizado como "untracked" (não rastreado).
Execute o comando git diff para ver as diferenças entre o estado atual e o último commit.
Nada será mostrado, pois o arquivo.txt
é um arquivo novo e ainda não foi rastreado pelo Git. Além de não existir commits anteriores.
Execute o comando git add arquivo.txt para adicionar o arquivo à área de stage.
Execute o comando git status para verificar o estado atual do diretório de trabalho e da área de stage.
O arquivo arquivo.txt
deve constar na área de stage agora, pronto para ser commitado. O seu estado atual é "tracked" e "staged" (rastreado e em área de preparação).
Use o comando git commit -m "Adicionando arquivo arquivo.txt" para salvar a sua alteração.
Execute o comando git status para verificar o estado atual do diretório de trabalho e da área de stage.
O arquivo arquivo.txt
foi salvo no repositório, e o arquivo voltou ao estado "tracked" e "committed" (rastreado e confirmado).
Execute o comando git log para ver o histórico de commits do repositório.
Agora, o seu primeiro commit no repositório já está sendo listado.
Adicione uma nova linha ao final do arquivo arquivo.txt
contendo a frase "dev". Você pode fazer isso via comando de terminal ou via um editor de texto. Este é o comando para criar via terminal
Verifique o conteúdo do arquivo. O resultado deve ser um texto contendo cumbuca
na primeira linha e dev
na segunda.
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Execute o comando git status para verificar o estado atual do diretório de trabalho e da área de stage.
O arquivo arquivo.txt
agora está "tracked" e "modified" (rastreado e modificado).
Execute o comando git diff para verificar as diferenças entre o estado atual e o último commit.
Execute o comando git add arquivo.txt para adicionar o arquivo novamente à área de stage.
Execute o comando usa git status para verificar o estado atual do diretório de trabalho e da área de stage.
O arquivo arquivo.txt
agora está "tracked" e "staged" (rastreado e em área de preparação) novamente.
Execute o comando git commit -m "Adicionando mais uma linha ao arquivo.txt" para salvar a sua alteração.
Execute o comando git status para verificar o estado atual do diretório de trabalho e da área de stage.
O arquivo arquivo.txt
foi salvo no repositório, e o arquivo voltou ao estado "tracked" e "committed" (rastreado e confirmado).
Execute o comando git log para ver o histórico de commits do repositório. Você deve encontrar dois commits agora.
O comando git switch permite alternar entre branches de forma eficiente, facilitando a navegação no histórico do repositório.
O comando git switch é utilizado para alternar entre branches no Git de maneira intuitiva e eficiente, facilitando o fluxo de trabalho.
O formato base do comando git switch
é:
git switch [opções] nome-do-branch
Alternar para um branch existente
git switch nova-feature
Muda para o branch nova-feature
.
Criar e alternar para um novo branch:
git switch -c nova-feature
Cria um novo branch chamado nova-feature
e muda para ele automaticamente.
O comando git switch melhora a experiência ao alternar entre branches, tornando o fluxo de trabalho mais eficiente e reduzindo erros.
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando git
switch
, consulte a .
Como visto na seção 2.3.3 Branch, os branches (ou ramificações) são uma das principais funcionalidades do Git, permitindo que você trabalhe em diferentes versões de um projeto sem interferir no código principal. Elas são essenciais para desenvolvimento colaborativo, facilitando a criação de novas funcionalidades, correções de bugs e experimentações sem afetar a versão estável do código.
Nesta seção, você aprenderá como criar, mudar, mesclar e gerenciar branches de forma eficiente, garantindo um fluxo de trabalho organizado e produtivo.
O comando git status serve para mostrar o estado atual dos arquivos de um projeto.
Ao executar o comando git status, serão listado os arquivos modificados, preparados e não rastreados.
O comando irá mostrar quais arquivos foram modificados desde o último commit. Esses arquivos ainda não estão preparados (staged) para o próximo commit.
Exemplo: Se você editou index.html
, o git status mostrará que index.html
foi modificado (modified
).
O comando irá mostrar a lista dos arquivos que estão na área de preparação (staging area), prontos para serem incluídos no próximo commit.
Exemplo: Se você usou git add index.html, o git status mostrará que index.html
está na área de preparação.
O comando irá mostrar quais arquivos do diretório de trabalho não estão sendo rastreados pelo Git. Esses são arquivos que ainda não foram adicionados ao repositório.
Exemplo: Se você criou um novo arquivo chamado script.js
e não usou git add nele, git status mostrará que script.js
é um arquivo não rastreado.
O formato base do comando git status é:
git status [opções]
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando git
status
, consulte a .
Quando você trabalha com Git, a função "salvar" funciona de uma maneira um pouco diferente do que estamos acostumados em programas como editores de texto (como Microsoft Word, Google Docs...).
Normalmente, quando salvamos um documento em um editor de texto, estamos apenas atualizando o arquivo com as mudanças feitas. Esse processo é simples e direto: ou você está criando um arquivo novo (geralmente disponível no menu "Salvar Como") ou substituindo o arquivo existente com novas alterações (geralmente disponível no menu "Salvar").
No Git, o termo "salvar", em geral, é chamado de "commit". Fazer um commit é como salvar um conjunto de mudanças em seus arquivos e pastas. Não estamos apenas substituindo um arquivo, mas sim registrando todas as alterações feitas em vários arquivos de uma vez. É como tirar uma "foto" do estado atual de todo o projeto.
Então, sempre que você ouvir "commit" no Git, pense nisso como um "salvar" mais poderoso e abrangente, que acompanha um grupo de arquivos e suas alterações, em vez de apenas um único arquivo.
Os arquivos em sua pasta de trabalho podem estar sendo rastreados pelo Git ("tracked") ou não ("untracked"):
Não rastreados (Untracked): São arquivos que não estão sendo monitorados pelo Git. Eles existem no diretório de trabalho, mas nunca foram adicionados ao repositório Git. Ou seja, o Git simplesmente não controla o versionamento destes arquivos.
Rastreados (Tracked): São arquivos que o Git conhece e está rastreando. Isso inclui arquivos que foram adicionados ao repositório e que fazem parte do histórico de commits.
Ao criar um arquivo novo no seu diretório local, ele ainda não estará sendo rastreado pelo Git. Para isso, você precisa explicitamente adicioná-lo com o comando git add. A partir de então, o Git passará a controlar o versionamento do novo arquivo no projeto.
No Git, os arquivos podem estar em diferentes estados para gerenciar as mudanças de forma mais eficiente, uma vez que "salvar" no Git é mais complexo do que em um editor de texto tradicional. Os estados permitem que você escolha quais mudanças salvar (commit) e quais não. Por exemplo, se você está trabalhando em duas funcionalidades diferentes no mesmo projeto, você pode selecionar quais arquivos ou partes de arquivos deseja incluir no commit de cada funcionalidade.
Portanto, uma vez que o arquivo está sendo rastreado pelo Git, ele pode estar em um dos seguintes estados:
Modificado (Modified): Quando você faz alterações em um arquivo no seu diretório de trabalho, ele está no estado modificado. Isso significa que você mudou o conteúdo do arquivo, mas ainda não informou ao Git que deseja salvar essas mudanças.
Preparado (Staged): Depois de modificar um arquivo, você pode usar o comando git add para colocar essas mudanças na área de preparação (staging area ou index). Quando um arquivo está na staging area, ele está no estado preparado. Isso significa que você está dizendo ao Git que essas mudanças devem ser incluídas no próximo commit.
Salvo / Confirmado (Committed): Quando você está satisfeito com as mudanças que preparou, você usa o comando git commit para salvar essas mudanças no repositório do Git. Um commit é como tirar uma "foto" do estado atual do seu projeto e armazená-la permanentemente no histórico do Git. Quando um arquivo está confirmado, suas mudanças estão salvas de forma segura no repositório.
A preparação seletiva oferece flexibilidade para testar e revisar antes de confirmar as mudanças. Você pode fazer várias alterações, mas só preparar aquelas que estão prontas para serem confirmadas. Isso ajuda a manter um histórico claro e organizado, pois cada commit representa uma "foto" do estado dos arquivos, facilitando a rastreabilidade e a colaboração.
Resumindo:
Modificado: Arquivo foi alterado, mas as mudanças não foram preparadas.
Preparado (Staged): Mudanças estão na área de preparação e prontas para serem confirmadas.
Confirmado / Salvo (Committed): Mudanças foram salvas no repositório do Git.
O comando git merge é utilizado para combinar as mudanças de diferentes branches no Git, integrando alterações feitas em um branch para o branch atual.
O git merge pega as alterações feitas em um branch específico e as aplica no branch em que você está atualmente. Isso acontece de forma automática, quando não há conflitos, ou pode exigir uma intervenção manual, caso ocorram conflitos entre as mudanças feitas.
Quando você realiza um merge, o Git tenta combinar as alterações automaticamente. Se houver diferenças que não podem ser resolvidas automaticamente (conflitos), o Git pedirá sua ajuda para escolher qual versão manter.
Esta é a estrutura base do comando git merge que iremos utilizar neste momento
git merge nome-do-branch
Em que:
git merge: Este é o comando principal que invoca a ferramenta de mesclagem do Git.
nome-do-branch: Especifica o branch que você deseja mesclar com o branch atual. Esse pode ser um branch local ou remoto.
Esse comando deve ser executado no branch de destino, ou seja, o branch onde você quer que as alterações sejam aplicadas.
Integrar um branch no branch principal
git switch main git merge nova-feature
O primeiro comando garantirá que o branch atual é o main
. No segundo comando, se o merge ocorrer sem conflitos, o Git criará automaticamente um commit de merge para registrar a fusão dos branches. Isso irá aplicar as alterações do nova-feature
no main
.
O merge funciona perfeitamente quando não há conflitos. No entanto, quando eles ocorrem, é necessário resolvê-los manualmente com atenção. Na próxima seção, vamos aprender como lidar com os conflitos que podem surgir durante o processo de merge.
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando git
merge
, consulte a .
Um conflito no Git ocorre quando ele não consegue mesclar automaticamente as alterações feitas em dois branches diferentes. Isso acontece quando ambos modificam a mesma parte do código e o Git não sabe qual alteração deve ser mantida.
Conflitos são comuns quando várias pessoas colaboram em um projeto. Por exemplo:
Duas pessoas editam as mesmas linhas de um arquivo.
Alguém exclui um arquivo enquanto outra pessoa faz alterações nele.
Arquivos são movidos ou renomeados em diferentes branches.
O Git precisa da sua intervenção para resolver essas situações e decidir qual versão do código será mantida.
Alterações no mesmo trecho do código: Quando o mesmo trecho de um arquivo é alterado em ambos os branches.
Alterações conflitantes: Quando um arquivo foi removido em um branch e modificado no outro.
Mudanças na estrutura de diretórios: Quando há conflitos na estrutura de diretórios, como arquivos movidos ou renomeados em ambos os branches.
Alterações em arquivos diferentes: Quando as mudanças são feitas em arquivos diferentes, o Git pode mesclar automaticamente.
Alterações em partes diferentes do mesmo arquivo: Quando as alterações acontecem em áreas separadas de um arquivo, o Git pode combinar automaticamente.
Arquivos adicionados em apenas um branch: Se um arquivo foi adicionado em um branch, mas não existe no outro, o Git pode integrá-lo automaticamente.
O Git não pode decidir qual versão do código é a correta porque ele não entende a intenção e o contexto por trás das mudanças. Imagine um exemplo em que duas pessoas editaram a primeira linha de um mesmo arquivo:
Alice alterou um texto para "Boas vindas ao nosso sistema!"
Bob alterou o mesmo texto para "Olá! Esperamos que goste do nosso produto."
O Git não pode simplesmente escolher uma versão sem interferência humana, porque não sabe qual das mensagens é mais apropriada. Essa decisão precisa ser feita por uma pessoa, analisando o contexto.
Quando você executa o comando git merge, o Git tenta combinar as alterações de dois branches. O processo de mesclagem pode resultar em três tipos de cenário:
O Git não consegue iniciar o merge: Caso haja mudanças no diretório de trabalho ou na área de staging do projeto atual, o merge não é iniciado.
O merge ocorre sem conflitos: O Git consegue combinar todas as mudanças automaticamente.
O merge é interrompido por presença de conflito(s): O Git não consegue resolver automaticamente uma ou mais diferenças entre os branches e precisa da sua intervenção para resolver o conflito.
A seguir, vamos detalhar cada um desses casos.
A inicialização do merge pode falhar se existirem mudanças no diretório de trabalho ou na área de staging do projeto atual.
O Git não pode iniciar o merge, pois essas mudanças pendentes podem ser gravadas pelos commits que estão passando pelo processo de merge. Quando esse tipo de erro acontece, é por causa de conflitos com mudanças locais pendentes, não conflitos com outros desenvolvedores. A falha da inicialização do merge vai fazer com que a mensagem de erro a seguir seja exibida:
Você precisará comitar ou descartar as suas mudanças locais para ter sucesso ao executar o merge novamente.
Este é o caso descrito na seção anterior. Quando não há conflito, o Git consegue realizar o merge automaticamente e já cria um commit para você. Esse commit de merge é criado automaticamente, sem a necessidade de intervenção manual. A mensagem exibida será algo assim:
Isso indica que o Git realizou um merge, onde as mudanças foram integradas sem conflitos. Ao inspecionar o log de commits, você conseguirá ver o novo commit realizado:
Ao verificar o histórico de commits, você verá o merge registrado.
Quando um ou mais conflitos ocorrem durante o merge, o Git não pode decidir automaticamente qual versão do código deve ser mantida e marca o(s) conflito(s) para que você resolva manualmente.
O Git interrompe o processo de merge e solicita que você edite os arquivos conflitantes. Você verá uma mensagem como essa:
Essa mensagem indica que o merge automático falhou pois ocorreram conflitos nos arquivos arquivo1.txt
e arquivo2.txt
.
Diante deste cenário, você possui duas opção de como prosseguir:
Cancelamento do merge: Se você decidir que não deseja continuar o merge, é possível abortá-lo.
Resolução dos conflitos: explicar
Se você deseja cancelar o merge completamente e voltar ao estado anterior, use o comando:
Esse comando desfaz todas as mudanças feitas durante o merge e retorna o repositório ao estado anterior à tentativa de mesclagem.
O outro cenário possível é quando você deseja seguir em frente com o merge e irá resolver os conflitos manualmente.
Ao executar git status você poderá consultar novamente quais os arquivos que possuem conflitos.
Após identificar os arquivos com conflitos, você deve abri-los no seu editor de texto. O Git terá adicionado marcadores especiais para apontar as partes conflitantes do código, desta forma:
O trecho entre <<<<<<< HEAD
e =======
representa o código do seu branch atual.
O trecho entre =======
e >>>>>>> nome-do-branch
mostra o código do branch que você está tentando mesclar.
Você precisa editar cada arquivo manualmente para escolher qual parte do código manter ou, se necessário, combinar as duas versões.
Após editar o arquivo, remova os marcadores (<<<<<<<
, =======
, >>>>>>>
) e salve as mudanças.
Ao resolver o conflito, use o comando git add para informar ao Git que o conflito foi resolvido em cada um dos arquivos:
Ao resolver todos os conflitos, você pode finalizar a mesclagem realizando o commit de merge:
Este commit irá incluir todas as mudanças do merge—tanto as resolvidas manualmente quanto as mescladas automaticamente.
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades em como lidar com conflitos durante o comando git
merge
, consulte a .
O comando git diff é usado para mostrar as diferenças entre o estado atual do seu repositório e o último commit. Ele é útil para visualizar as alterações feitas nos arquivos antes de criar um novo commit.
No terminal, o output do git diff apresentará as diferenças de forma clara. Cada alteração será mostrada com um prefixo indicando se é uma adição +
, uma remoção -
, ou uma modificação *
.
Esta é a estrutura base do comando git diff que iremos utilizar neste momento
git diff [arquivo]
Em que:
git diff: Este é o comando principal que invoca a ferramenta de diferenciação do Git.
[arquivo] (opcional): Este é um argumento opcional que especifica o arquivo específico para o qual você deseja ver as diferenças. Se nenhum arquivo for especificado, o git diff mostrará as diferenças de todos os arquivos modificados em relação ao último commit.
Suponha que o arquivo index.html
originalmente tinha o seguinte conteúdo:
Agora, você fez algumas alterações nesse arquivo. Por exemplo, você modificou o título do site. O arquivo index.html
modificado ficou assim:
Ao executar o comando git diff index.html, o output no terminal mostrará as diferenças entre o estado atual do arquivo index.html
e o último commit. Ele indicará que o título do site foi alterado de "Meu Site" para "Meu Novo Site", destacando essa mudança no código:
Em que:
Diff do arquivo index.html:
Esta linha indica que está sendo mostrada a diferença entre dois arquivos: a/index.html
(o arquivo original) e b/index.html
(o arquivo modificado).
Cabeçalho de Mudança::
Este cabeçalho técnico fornece informações detalhadas sobre as mudanças nos arquivos e pode ser ignorado por enquanto, focando apenas nas alterações visíveis no conteúdo.
Linha de Mudança:
Esta linha mostra a linha inicial e o número de linhas afetadas pela mudança em cada arquivo. No exemplo, -1,5
indica que a mudança começa na linha 1 do arquivo original (a/index.html
) e afeta 5 linhas. +1,5
indica que a mudança começa na linha 1 do arquivo modificado (b/index.html
) e também afeta 5 linhas.
Alterações Específicas:
Essas linhas mostram as alterações específicas que ocorreram em cada versão do arquivo.
A linha original <title>Meu Site</title>
foi removida (indicada pelo sinal -
).
Em seu lugar, foi adicionada a linha <title>Meu Novo Site</title>
(indicada pelo sinal +
).
Para visualizar as diferenças em todos os arquivos modificados, basta utilizar o comando git diff sem nenhum argumento. Dessa forma, o Git apresentará todas as alterações realizadas em todos os arquivos do repositório, oferecendo uma visão abrangente das mudanças efetuadas, sem focar em um arquivo específico, ao contrário do comando git diff arquivo.
Conteúdo Original dos Arquivos:
index.html:
style.css:
Conteúdo Modificado dos Arquivos:
index.html:
style.css:
Ao executar o comando git diff, o output no terminal mostrará as diferenças entre o estado atual dos arquivos e o último commit. Ele indicará as alterações feitas em ambos os arquivos:
Em que:
Diff do arquivo index.html:
Esta linha indica que está sendo mostrada a diferença entre dois arquivos: a/index.html
(o arquivo original) e b/index.html
(o arquivo modificado).
Cabeçalho de Mudança:
Este cabeçalho técnico fornece informações detalhadas sobre as mudanças nos arquivos e pode ser ignorado por enquanto, focando apenas nas alterações visíveis no conteúdo.
Linha de Mudança:
Esta linha mostra a linha inicial e o número de linhas afetadas pela mudança em cada arquivo. No exemplo, -1,5
indica que a mudança começa na linha 1 do arquivo original (a/index.html
) e afeta 5 linhas. +1,5
indica que a mudança começa na linha 1 do arquivo modificado (b/index.html
) e também afeta 5 linhas.
Alterações Específicas:
Essas linhas mostram as alterações específicas que ocorreram em cada versão do arquivo.
A linha original <title>Meu Site</title>
foi removida (indicada pelo sinal -
).
Em seu lugar, foi adicionada a linha <title>Meu Novo Site</title>
(indicada pelo sinal +
).
Diff do arquivo style.css:
Esta linha indica que está sendo mostrada a diferença entre dois arquivos: a/style.css
(o arquivo original) e b/style.css
(o arquivo modificado).
Cabeçalho de Mudança:
Assim como no arquivo index.html
, este cabeçalho técnico fornece informações detalhadas sobre as mudanças nos arquivos e pode ser ignorado por enquanto, focando apenas nas alterações visíveis no conteúdo.
Linha de Mudança:
Esta linha mostra a linha inicial e o número de linhas afetadas pela mudança em cada arquivo. No exemplo, -2,4
indica que a mudança começa na linha 2 do arquivo original (a/style.css
) e afeta 4 linhas. +2,4
indica que a mudança começa na linha 2 do arquivo modificado (b/style.css
) e também afeta 4 linhas.
Alterações Específicas:
Essas linhas mostram as alterações específicas que ocorreram em cada versão do arquivo. Linhas com +
indicam adições ou modificações no arquivo modificado (b/style.css
). Neste caso, houve uma adição de estilo para alterar a cor de fundo do corpo da página para #ffffff
.
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando git
diff
, consulte a .
Ao trabalhar com Git, cometer erros ou mudar de decisão faz parte do processo. Seja um arquivo modificado por engano, uma alteração que não faz mais sentido ou um commit que precisa ser ajustado, o Git oferece diversas formas de reverter mudanças de maneira segura e eficiente. Nesta seção, vamos explorar como desfazer alterações em diferentes estágios do fluxo de trabalho, garantindo que você tenha controle sobre as modificações feitas no seu repositório localmente, sem afetar repositórios remotos.
O Git permite reverter mudanças em momentos distintos do desenvolvimento. Vamos nos concentrar nos seguintes tipos de reversões:
Alterar arquivos antes do commit Exemplo: Você editou um arquivo, mas ainda não o adicionou ao staging ou já adicionou e deseja removê-lo do staging sem perder as alterações feitas.
Desfazer um commit local Exemplo: Você fez um commit por engano e quer removê-lo ou voltar a um estado anterior sem perder o histórico.
Alterar o último commit local Exemplo: Você deseja modificar o último commit feito, seja para corrigir a mensagem, adicionar novos arquivos ou editar alterações já incluídas.
O Git oferece diferentes formas de lidar com cada uma dessas situações. Nesta seção, vamos detalhar cada abordagem, explicando como e quando utilizá-las para evitar problemas e manter o histórico do seu repositório claro e organizado.
Quando trabalhamos com Git em projetos colaborativos, a capacidade de gerenciar diferentes versões do código de forma organizada e sem interferir no trabalho dos outros é essencial.
O uso de branches (ramificações) permite que pessoas trabalhem em funcionalidades ou correções de forma isolada, sem afetar a base principal do código. Ao entender como criar, alternar e mesclar branches, conseguimos integrar essas alterações de forma eficiente, mantendo o código sempre atualizado e funcional.
git branch: Um branch é uma linha de desenvolvimento independente. Com o comando git branch
, você cria uma ramificação do código, permitindo que trabalhe em novas funcionalidades ou correções sem impactar o branch principal.
git switch: O comando git switch
é utilizado para alternar entre diferentes branches de forma simples e rápida. Ele permite que você mude de um branch para outro sem perder o progresso em que está trabalhando, facilitando a navegação entre várias linhas de desenvolvimento.
git merge: Após concluir as alterações em um branch, você pode querer integrar essas mudanças de volta ao branch principal. O comando git merge
é utilizado para combinar as alterações de dois branches. Quando não há conflitos, o merge é feito automaticamente.
Resolução de Conflitos: Os conflitos acontecem quando duas alterações incompatíveis são feitas na mesma parte do código em diferentes branches. Nesses casos, o Git não sabe qual versão manter. Para resolver, você precisa revisar manualmente os arquivos conflitantes, decidir qual código manter ou combinar as mudanças e, em seguida, realizar o commit da resolução.
Em seguida, veremos um exemplo prático de como esses comandos funcionam.
Aqui estão os links que consideramos relevantes na construção deste Capítulo. Disponibilizamos caso você queira ampliar seus estudos de boas fontes :)
O comando git branch permite criar, listar e excluir branches no Git, facilitando o desenvolvimento paralelo e a organização do código.
O comando git branch é usado para gerenciar branches no Git, permitindo a criação de novas ramificações, listagem das existentes e remoção de branches que não são mais necessários.
Quando você deseja desenvolver uma nova funcionalidade ou corrigir um bug sem interferir no código principal, você pode criar um novo branch usando git branch.
O branch criado começa com todo o conteúdo do branch atual. Ou seja, o novo branch será uma cópia exata do estado atual do branch de onde foi criado, incluindo arquivos e alterações não comitadas.
Para visualizar todos os branches disponíveis no repositório, o comando git branch pode ser usado sem argumentos.
Quando um branch não é mais necessário, ele pode ser removido para manter o repositório organizado.
O formato base do comando git branch é:
git branch [opções] [nome-do-branch]
Criar um novo branch:
git branch feature-x
Cria um novo branch chamado feature-x
, mas não muda para ele automaticamente. Permanece no mesmo branch que já estava.
Listar branches existentes:
git branch
Exibe todos os branches locais, destacando o branch atual com um *
.
Excluir um branch local:
git branch -d feature-x
Remove o branch feature-x
se ele já foi mesclado (merged). Ou seja, o branch somente será deletado se todas as alterações feitas já foram integradas ao branch principal.
Caso o branch ainda tenha alterações não mescladas e você queira removê-lo de qualquer forma, utilize o comando:
git branch -D feature-x
Isso força a exclusão do branch, descartando qualquer alteração que ainda não tenha sido integrada ao branch principal.
O comando git branch é essencial para um fluxo de trabalho eficiente no Git, permitindo que diferentes funcionalidades sejam desenvolvidas separadamente sem afetar o código principal.
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando git
branch
, consulte a .
Durante o desenvolvimento, é comum modificar arquivos e depois perceber que deseja desfazer essas mudanças antes de realizar um commit. O Git oferece diferentes maneiras de lidar com essa situação, dependendo do estado dos arquivos. Vamos aqui focar em dois possíveis cenários:
Desfazer alterações que ainda não foram adicionados à área de staging
Remover arquivos da área de staging
Se um arquivo foi editado, mas ainda não foi adicionado ao staging com git add, você pode simplesmente descartar as alterações com:
git restore nome-do-arquivo
Isso reverterá o arquivo para o último estado salvo no repositório.
Se você já adicionou o arquivo ao staging com git add, mas deseja remover as mudanças antes do commit, use:
git reset HEAD nome-do-arquivo
Isso removerá o arquivo do staging, mas manterá as mudanças no diretório de trabalho. O comando apenas "desfaz o git add".
Para descartar completamente as mudanças, você pode utilizar o comando explicado no item anterios:
git restore nome-do-arquivo
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades dos comandos git
restore
e git
reset
, consulte as documentações oficiais:
Durante o desenvolvimento, é comum fazer commits e, em alguns momentos, perceber que algo precisa ser alterado. O Git oferece maneiras simples de desfazer commits feitos localmente, para que você possa corrigir ou ajustar as alterações antes de enviá-las para o repositório remoto.
Aqui vamos focar nas formas mais simples e seguras de desfazer commits, sem complicações, para que você possa corrigir seus erros sem afetar o histórico de forma complicada.
Se você deseja desfazer um commit que não é o último, o Git oferece uma maneira simples de fazer isso sem complicação. A melhor maneira de reverter um commit antigo é usando o comando git revert.
O git revert cria um novo commit que desfaz as alterações de um commit específico. Isso é útil quando você deseja desfazer algo que já foi feito, mas não quer afetar outros commits feitos depois desse.
Para reverter um commit antigo, você deve primeiro identificar o "hash" do commit que deseja desfazer. O hash é um identificador único para cada commit. Você pode visualizar o histórico de commits com o comando:
git log
Depois de encontrar o hash do commit, use o comando:
git revert hash-do-commit
O Git criará um novo commit que desfaz as alterações daquele commit. Assim, seu histórico de commits ficará preservado, e você ainda conseguirá corrigir o erro.
Se você cometeu um erro no último commit ou percebeu que não deveria ter feito aquele commit, você pode facilmente desfazê-lo. Existem duas formas principais de desfazer o último commit, dependendo do que você deseja fazer com as alterações:
Se você quer desfazer o commit, mas manter as alterações feitas nos arquivos (como se você tivesse apenas esquecido de fazer o commit), use o comando:
git reset --soft HEAD~1
Esse comando desfaz o último commit, mas mantém as alterações tanto na área de staging (onde ficam os arquivos prontos para o commit) quanto nos arquivos locais. Ou seja, é como se você tivesse feito o git add
, mas ainda não tivesse feito o commit.
Se você já adicionou os arquivos à área de staging (usando git add
), mas quer desfazer o commit e retirar os arquivos da área de staging, mantendo as alterações feitas nos arquivos, use:
git reset HEAD~1
Esse comando desfaz o último commit e remove os arquivos da área de staging, mas as alterações ainda vão permanecer nos seus arquivos locais. Ou seja, os arquivos vão voltar para o estado "modificado", mas não estarão mais preparados para o commit.
Se você deseja desfazer mais de um commit, basta alterar o número após HEAD~
. Por exemplo, para desfazer os últimos dois commits, você pode usar:
git reset --soft HEAD~2
Ou, se quiser também remover as mudanças da área de staging, use:
git reset HEAD~2
Isso irá desfazer dois commits de uma vez, e você pode ajustar o número conforme necessário.
Git Reset x Git Revert:
Use o git reset para desfazer commits recentes, caso ainda não tenha enviado as alterações para o repositório remoto. É uma forma rápida de voltar para um estado anterior sem deixar rastros no histórico.
Use o git revert para desfazer commits antigos ou quando você precisa manter o histórico de commits intacto. Ele cria um novo commit que reverte as alterações feitas, o que é mais seguro caso você já tenha compartilhado os commits com outras pessoas.
Essas são as formas mais comuns e seguras de desfazer commits locais no Git, ideais para iniciantes que estão começando a se familiarizar com o controle de versões.
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades dos comandos git
reset
e git
revert
, consulte as documentações oficiais:
O Git oferece diversas formas de modificar o último commit local, permitindo ajustes rápidos quando algo não sai como esperado. Vamos focar nas opções mais simples e úteis para iniciantes:
Corrigir a mensagem do commit
Adicionar arquivos esquecidos
Modificar o último commit, adicionando arquivos e mudando a mensagem
Se você deseja apenas alterar a mensagem do último commit, utilize:
git commit --amend -m "Nova mensagem do commit"
Isso irá modificar a mensagem do commit sem alterar seu conteúdo.
Se você esqueceu de adicionar um arquivo antes do commit, utilize o comando git commit --amend --no-edit após adicionar o arquivo:
git add arquivo_esquecido.txt
git commit --amend --no-edit
Isso adiciona o arquivo ao commit sem modificar a mensagem.
Se você precisa adicionar um arquivo e também alterar a mensagem do último commit, use:
git add arquivo_esquecido.txt
git commit --amend -m "Nova mensagem com arquivos adicionados"
Isso faz as duas coisas: adiciona o arquivo e altera a mensagem do commit.
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades da opção --amend
do comando git
commit
, consulte a .
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Verifique os arquivos modificados que ainda não foram adicionados à área de staging.
Saída esperada:
Para restaurar o arquivo para seu estado original, utilize o comando:
Após desfazer as alterações, verifique novamente o estado do repositório.
Saída esperada:
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Adicione o arquivo à área de staging para prepará-lo para o commit.
Verifique os arquivos que foram adicionados à área de staging.
Saída esperada:
Remova o arquivo da área de staging, mas sem apagar o arquivo do seu diretório de trabalho.
Após remover o arquivo da área de staging, verifique o estado novamente.
Saída esperada:
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Adicione mais uma linha ao arquivo e faça o commit. Faça isso um total de três vez.
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Saída esperada:
Suponha que queremos desfazer "Alteração 2 no arquivo". Pegue o hash correspondente e execute o comando:
O Git abrirá um editor para confirmar a mensagem do commit de reversão. Salve e saia do editor.
Saída esperada:
Saída esperada:
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Saída esperada:
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Adicione mais uma linha ao arquivo e faça o commit. Faça isso um total de três vez.
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Saída esperada:
Agora, as alterações feitas nesses commits ainda estão na área de staging, prontas para serem ajustadas.
Saída esperada:
Saída esperada:
Agora os commits desfeitos não estarão mais no histórico.
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Saída esperada:
A saída mostra que as linhas referentes às mudanças 2 e 3 ainda estão no arquivo, mesmo que os commits tenham sido desfeitos no Passo 4 com git reset --soft HEAD~2
. Isso acontece porque o reset foi feito com a opção --soft
, que remove os commits, mas mantém as alterações no arquivo e na área de staging.
Saída esperada:
O git diff --staged mostra as mudanças que estão na área de staging, ou seja, prontas para serem commitadas novamente.
A saída mostra que as linhas "Mudança 2" e "Mudança 3" foram adicionadas (+
indica adição). Isso confirma que, apesar de os commits terem sido removidos do histórico, as alterações continuam armazenadas e podem ser reaproveitadas em um novo commit, editadas ou descartadas conforme necessário.
Resumindo, os commits foram apagados, mas as mudanças feitas neles continuam disponíveis para serem reutilizadas.
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Agora, criamos outro arquivo, mas esquecemos de adicioná-lo no commit anterior.
🔹 Linux/macOS
🔹 Windows (CMD/PowerShell)
Agora, adicionamos o novo arquivo e modificamos o último commit para incluí-lo.
Saída esperada (algo como):
Passo 5: Verificar o histórico de commits
Para confirmar que a mensagem foi alterada e o novo arquivo foi incluído no commit, execute:
Saída esperada (algo como):
Podemos verificar quais arquivos estão incluídos no commit alterado com o seguinte comando:
Saída esperada:
Agora o commit foi modificado para incluir o arquivo esquecido e tem uma mensagem atualizada.
Aqui estão os links que consideramos relevantes na construção deste Dia. Disponibilizamos para caso queira ampliar seus estudos de boas fontes :)
git restore <arquivo>
: Este comando é usado para desfazer as mudanças feitas em um arquivo que ainda não foi comprometido. Ele restaura o arquivo para o estado que estava no último commit ou na área de staging, descartando as modificações feitas.
git reset HEAD <arquivo>
: Este comando remove um arquivo da área de staging, mas não o apaga do seu diretório de trabalho. O arquivo permanece no seu diretório, mas não será incluído no próximo commit.
git revert hash-do-commit:
Este comando cria um novo commit que reverte as alterações de um commit específico. Isso é útil quando você deseja desfazer algo que já foi feito, mas não quer afetar outros commits feitos depois desse.
git reset HEAD~n:
Este comando desfaz os "n" commits mais recentes, caso ainda não tenham sido enviados para o repositório remoto, preservando as alterações feitas no diretório de trabalho. É uma forma rápida de voltar para um estado anterior sem deixar rastros no histórico. Use --soft
para manter as mudanças na área de staging.
Corrigir a mensagem do último commit:
Adicionar arquivos esquecidos ao último commit:
Modificar o último commit (adicionar arquivos e alterar a mensagem):
Teremos um repositório Git com um branch principal chamado main
e um branch nova-feature
. Ambos os branches modificam três arquivos:
arquivo1.txt
→ Conflito (alterado em ambos os branches na mesma linha).
arquivo2.txt
→ Conflito (alterado em ambos os branches na mesma linha).
arquivo3.txt
→ Sem conflito (alterado apenas no branch nova-feature
).
Agora, adicione os arquivos e faça o primeiro commit:
nova-feature
Crie o branch nova-feature
e faça alterações nele:
Altere os arquivos:
Adicione os arquivos alterados e faço o commit:
main
Volte para o branch main
e faça outras alterações nos mesmos arquivos:
Altere os arquivos:
Adicione os arquivos alterados e faço o commit:
Agora, tente mesclar o branch nova-feature
no main
:
O Git responderá com um erro porque há conflitos:
📌 O Git mesclará automaticamente o arquivo3.txt
, mas os arquivos arquivo1.txt
e arquivo2.txt
precisarão ser resolvidos manualmente.
Rode o comando:
Saída:
📌 O arquivo3.txt
já foi mesclado automaticamente e está pronto. Os outros dois precisam ser corrigidos.
Agora você precisa corrigir os conflitos nos arquivos arquivo1.txt
e arquivo2.txt
.
Rode o comando:
Saída:
Isso significa que ambos os arquivos foram modificados em ambos os branches na mesma parte do código, e o Git não sabe qual versão escolher.
arquivo1.txt
Se abrir arquivo1.txt
, verá algo assim:
Aqui está o que essas marcações significam:
<<<<<<< HEAD
→ Parte que veio do branch atual (main
)
=======
→ Separação entre as duas versões
>>>>>>> nova-feature
→ Parte que veio do branch nova-feature
Agora, é preciso escolher como você quer resolver. Existem três opções:
Manter a versão do main
Manter a versão do nova-feature
Combinar as duas versões (uma abordagem comum)
Escolha a opção 3 e remova os marcadores (<<<<<<<
, =======
, >>>>>>>
).
Salve e feche o arquivo.
arquivo2.txt
Abra arquivo2.txt
e você verá algo parecido:
Novamente, existem três opções:
Manter a versão do main
Manter a versão do nova-feature
Combinar as duas versões
Escolha a opção 3 e removemos os marcadores (<<<<<<<
, =======
, >>>>>>>
).
Salve e feche o arquivo.
Agora os arquivos corrigidos devem estar assim:
arquivo1.txt
(resolvido)
arquivo2.txt
(resolvido)
Adicionamos os arquivos à área de stage para sinalizar ao Git que os arquivos não possuem mais conflitos:
📌 O arquivo3.txt
já está pronto, então você não precisa mexer nele.
Crie o commit de merge:
Agora o merge está concluído! 🚀
Rode:
Saída esperada:
O commit abc1234
representa o merge e contém:
Os arquivos corrigidos manualmente (arquivo1.txt
e arquivo2.txt
).
O arquivo mesclado automaticamente (arquivo3.txt
).
No Git, um arquivo "rastreado" é aquele que está sob monitoramento do sistema de controle de versões. Isso significa que qualquer modificação feita nesse arquivo pode ser detectada e registrada no histórico do repositório.
Em alguns casos, pode ser útil impedir que o Git acompanhe determinadas mudanças ou até mesmo remover arquivos do rastreamento. Veja algumas situações comuns:
Alguns arquivos são específicos do seu ambiente e não precisam ser compartilhados no repositório.
📌 Exemplo: Você criou um arquivo config.txt
com preferências personalizadas do seu editor de código. Esse arquivo só faz sentido para você e não deve ser incluído no controle de versões.
Arquivos pesados, como vídeos e imagens, podem tornar o repositório lento e difícil de gerenciar, especialmente se não forem essenciais ao projeto.
📌 Exemplo: Você adicionou um vídeo tutorial_grande.mp4
, mas percebeu que ele não é necessário para os colaboradores do repositório.
Muitos sistemas criam arquivos temporários, caches ou logs que não precisam ser armazenados no Git, pois são recriados automaticamente.
📌 Exemplo: Seu projeto gera um arquivo log.txt
sempre que o programa roda. Esse arquivo contém informações de depuração momentâneas e não deve ser versionado.
É comum adicionar arquivos ao repositório sem querer. Felizmente, o Git permite remover arquivos do rastreamento sem apagá-los do disco.
📌 Exemplo: Você sem querer adicionou um banco de dados temporário temp.db
ao repositório, mas ele não deve fazer parte do versionamento.
Rastrear um arquivo significa que o Git está controlando todas as alterações feitas nesse arquivo.
Você pode querer parar de rastrear um arquivo por diversos motivos, como quando ele é específico do seu computador, quando é desnecessário ou quando foi adicionado acidentalmente.
Esses exemplos mostram situações comuns onde parar de rastrear um arquivo é uma decisão prática para manter seu repositório limpo e eficiente.
Neste capítulo, veremos como evitar o rastreamento e como remover arquivos do controle do Git sem excluí-los.
Uma conta no GitHub é um perfil criado no GitHub para acessar suas funcionalidades. É uma identidade digital que permite a você, sua organização ou sua empresa acessar e usar as diversas ferramentas e recursos disponíveis da plataforma.
Assim como em uma rede social, uma conta no GitHub tem um perfil, credenciais de acesso (usuário e senha) e possibilita a interação com outras contas, permitindo o compartilhamento e a colaboração em projetos de software.
No GitHub, tal como no Twitter ou Instagram por exemplo, você pode seguir outros perfis para acompanhar suas atualizações e projetos recentes. Porém, em vez de postar fotos ou status, você publica código e projetos, permitindo que outros desenvolvedores vejam, utilizem e contribuam para esses trabalhos. E, em vez de comentar em postagens, você abre issues para discutir problemas ou ideias, e faz pull requests para sugerir melhorias no código de outras pessoas. Essas interações facilitam a colaboração e o desenvolvimento coletivo.
Atualmente, existem 3 tipos de contas no GitHub, cada uma adaptada a diferentes necessidades:
Contas pessoais
Contas de organização
Conta corporativa
Vamos explorar cada uma delas a seguir.
Estes são os termos que consideramos importantes na compreensão total do Capítulo 3. Ao final do curso, você encontrará um glossário completo com todos os termos que consideramos essenciais!
Arquivo rastreado
Arquivo que está sendo monitorado pelo Git para alterações.
Estado atual
Condição atual de um arquivo ou projeto em um determinado momento.
Estado modificado
Estado de um arquivo após ter sido alterado no diretório de trabalho.
Estado preparado
Estado de um arquivo após ter sido adicionado à staging area.
Funcionalidades
Características ou partes específicas de um software.
Hash
Identificador único gerado pelo algoritmo SHA-1 para garantir a integridade dos dados.
Index
Sinônimo de staging area, onde as alterações preparadas são listadas antes do commit.
Rastreabilidade
Capacidade de acompanhar mudanças e ações dentro de um sistema.
Snapshots
Representações completas e seguras do estado do projeto em cada commit.
Status
Estado atual do repositório e dos arquivos em relação ao Git.
Atenção: os termos selecionados são explicados de acordo com o contexto específico de cada capítulo.
É muito comum, você pode ter arquivos que não deseja rastrear no controle de versão do Git. Isso inclui tipos específicos de arquivos que são criados durante o desenvolvimento de software ou que contêm informações sensíveis.
Por exemplo, durante a compilação de um programa, podem ser gerados arquivos executáveis (.exe no Windows) ou arquivos intermediários que são necessários apenas temporariamente. Esses arquivos não são essenciais para o controle de versão do seu projeto e podem ocupar espaço desnecessário no repositório Git.
Além disso, ferramentas e programas frequentemente criam arquivos temporários, como aqueles com extensões .tmp ou .temp, para armazenar informações transitórias que não precisam ser preservadas no histórico de versão.
Por fim, é crucial evitar incluir no controle de versão arquivos que contenham informações sensíveis, como senhas, chaves de API, tokens de acesso ou outros dados confidenciais. Esses arquivos podem comprometer a segurança do seu projeto se forem acessíveis a outras pessoas.
Para ignorar esses arquivos, você precisa criar um arquivo chamado .gitignore
no diretório raiz do seu projeto e listar nele os nomes dos arquivos e diretórios que deseja ignorar, um por linha. Em seguida, adicione e faça o commit do arquivo para que ele funcione corretamente.
Quando você adiciona um arquivo ou diretório ao .gitignore
, o Git não rastreará mais as alterações nesses arquivos. Isso significa que eles não serão exibidos como "untracked" quando você executar git status, e você não será solicitado a adicioná-los ao commit.
Com isso, um arquivo podem estar em um de três estados (agora adicionando o estado ignored
):
tracked (rastreado): um arquivo que já foi preparado ou confirmado;
untracked (não rastreado): um arquivo que não foi preparado nem confirmado; ou
ignored (ignorado): um arquivo que o Git foi forçado a ignorar.
Isso ignora:
- o arquivo arquivo.txt
e
- o arquivo arquivo2.txt
dentro do diretório diretorio
.
Isso ignora todos os arquivos dentro do diretório diretorio
, mas não o diretório em si. Subdiretórios dentro de diretorio
não serão ignorados, por exemplo.
Isso ignora todos os arquivos com a extensão .log
.
Isso ignora todos os arquivos chamados arquivo.log
em qualquer subdiretório.
Isso ignora completamente o diretório chamado diretorio
, incluindo todos os arquivos e subdiretórios dentro dele.
Esses são apenas alguns exemplos básicos de como estruturar um arquivo .gitignore
. Você pode adicionar mais linhas conforme necessário para personalizar quais arquivos e diretórios deseja ignorar no seu repositório Git.
Antes de criar o arquivo .gitignore
, é útil verificar quais arquivos estão atualmente listados no git status e que você deseja ignorar posteriormente. Por exemplo, se você tem arquivos de compilação com a extensão .exe
e arquivos temporários com a extensão .tmp
que deseja ignorar, execute git status para ver se esses arquivos estão listados como modificados ou não rastreados.
O output do git status pode mostrar algo semelhante a:
Isso mostra que os arquivos arquivo1.exe
e arquivo2.tmp
estão atualmente untracked. Para que eles não apareçam mais e sejam desconsiderados, você precisa ignorá-los.
Você abre o seu editor de texto preferido e cria um novo arquivo chamado .gitignore
.
No arquivo .gitignore, lista os nomes dos arquivos e diretórios que você deseja ignorar, um por linha. Por exemplo, você quer ignorar todos os arquivos de compilação com a extensão .exe e todos os arquivos temporários com a extensão .tmp. O arquivo .gitignore ficaria assim:
Após adicionar as regras de ignorar ao arquivo .gitignore
, você salva o arquivo.
Você usa git status para ver que agora apenas o arquivo .gitignore
aparece como untracked. Os arquivos arquivo1.exe
e arquivo2
já não aparecem mais.
Agora, para salvar as mudanças, adicione o arquivo .gitignore
ao controle de versão do Git usando o comando git add .gitignore.
Faça o commit com a mensagem apropriada, como git commit -m "Adicionar arquivo .gitignore".
Por fim, verifique se o Git está ignorando os arquivos listados no .gitignore
executando git status. Você não deve mais ver esses arquivos na lista de arquivos a serem commitados.
O output esperado do git status
deve mostrar algo semelhante a:
Isso indica que não há alterações pendentes para commit e que os arquivos listados no .gitignore
estão sendo ignorados pelo Git.
Ao executar git log, o output deve ser algo parecido com isso:
Digitar na Área de Texto: Acesse a ferramenta e digite na área de texto as tecnologias que está usando no seu projeto (ex: python, linux, Visual Studio Code). Conforme você digita, a ferramenta sugere opções relevantes para você selecionar.
Geração Automática: Após selecionar as opções relevantes, a ferramenta gera automaticamente um arquivo .gitignore
contendo regras apropriadas para ignorar arquivos específicos dessas tecnologias.
Download: Você pode então baixar o arquivo .gitignore
gerado e adicioná-lo ao diretório raiz do seu projeto.
Visite o repositório e explore os diferentes arquivos .gitignore
disponíveis para várias linguagens de programação, frameworks e ferramentas. Escolha o arquivo .gitignore
que melhor se adequa ao seu projeto. Você pode copiar o conteúdo do arquivo selecionado e personalizá-lo conforme necessário para atender às especificidades do seu projeto. Adicione o arquivo .gitignore
ao diretório raiz do seu projeto.
Às vezes, um arquivo já está sendo rastreado pelo Git, mas você percebe que ele não deveria estar no repositório. Isso pode acontecer quando você esquece de adicioná-lo ao .gitignore
ou quando ele deixa de ser relevante. Nesses casos, você pode usar o comando git rm para removê-lo do repositório e garantir que ele não seja rastreado no futuro.
O comando git rm remove arquivos do controle de versão do Git. Por padrão, ele exclui o arquivo tanto do repositório quanto do seu computador (diretório local). No entanto, é possível preservar o arquivo no diretório usando opções específicas.
git rm [opções] arquivo
Esse comando remove o arquivo tanto do repositório quanto do seu diretório local.
Se você deseja excluir um arquivo do repositório e apagá-lo do seu computador, use:
git rm exemplo.txt
Se o arquivo já está no repositório, mas você quer que o Git pare de rastreá-lo sem apagá-lo do disco, use a opção --cached:
git rm --cached exemplo.txt
Após isso, adicione o arquivo ao .gitignore
para evitar que ele seja rastreado novamente.
Se precisar remover um diretório inteiro e todos os seus arquivos, use a opção -r
:
git rm -r pasta/
O diretório e todos os arquivos dentro dele serão apagados do seu computador. Use --cached para manter os arquivos no diretório local.
Após usar git rm, o arquivo será removido do rastreamento, mas a alteração precisa ser confirmada em um commit.
Verifique o status dos arquivos:
Remova o arquivo do repositório:
Confirme a remoção:
Desfazendo a Remoção: Se você removeu um arquivo por engano e ainda não fez o commit, pode restaurá-lo com:
git restore arquivo
Removendo um Arquivo do Histórico do Repositório: Para remover um arquivo de todo o histórico do Git (e não apenas da versão atual), é necessário usar comandos avançados como git filter-branch ou git rebase, que não serão abordados aqui.
Dicas Importantes:
Sempre use git status antes de remover arquivos para evitar exclusões acidentais.
Faça backup (cópia) de arquivos importantes antes de removê-los do Git.
Para facilitar a criação de um arquivo .gitignore
adequado ao seu projeto, recomendamos o uso da ferramenta online . Ela permite que você selecione rapidamente as linguagens de programação, frameworks, ambientes de desenvolvimento e outras especificações do seu projeto, gerando automaticamente um arquivo .gitignore
personalizado.
Outra opção também é utilizar como base o repositório de arquivos .gitignore
do GitHub, acessível em .
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do arquivo .gitignore
, consulte a .
Esta é uma explicação simplificada para fins didáticos. Para explorar todas as possibilidades do comando git
rm
, consulte a .
Estes são os termos que consideramos importantes na compreensão total do Dia 4. Ao final do curso, você encontrará um glossário completo com todos os termos que consideramos essenciais!
Aplicações
Programas ou sistemas desenvolvidos para realizar tarefas específicas.
Cadeia de fornecedores
Sequência de processos que envolve a produção e distribuição de um produto ou serviço.
Ciência de dados
Campo interdisciplinar focado em métodos, processos e sistemas para extrair conhecimento de dados.
Código malicioso
Software ou código criado para causar danos ou acessar sistemas de forma não autorizada.
Criptomoedas
Moedas digitais que utilizam criptografia para garantir transações seguras e controle da criação de novas unidades.
Dependabot
Ferramenta do GitHub que ajuda a manter as dependências de um projeto atualizadas e seguras.
Dependências
Bibliotecas ou módulos de software que um projeto precisa para funcionar corretamente.
Desenvolvimento web
Criação e manutenção de sites e aplicações web.
Feedback
Informações retornadas sobre uma ação ou processo, usadas para melhorias contínuas.
Fórum
Plataforma online onde pessoas discutem e compartilham ideias sobre um tópico específico.
Gerenciamento de conteúdo
Processo de criação, publicação e gestão de informações digitais em diferentes formatos.
GPT
Modelos de linguagem avançados desenvolvidos pela OpenAI, utilizados para processamento e geração de texto.
Hub
Centro de conexão que facilita a transferência de dados, informações ou recursos entre diversos dispositivos.
Inteligência artificial (IA)
Campo da ciência da computação focado em criar sistemas capazes de realizar tarefas que normalmente requerem inteligência humana.
Aprendizado de máquina
Subcampo da IA que se baseia em algoritmos para permitir que computadores aprendam a partir de dados.
Nuvem
Rede de servidores remotos usados para armazenar, gerenciar e processar dados via internet.
Plugins
Extensões que adicionam funcionalidades específicas a um software.
Renderização
Processo de gerar uma imagem a partir de um modelo ou conjunto de dados.
Temas
Conjuntos de arquivos que alteram a aparência e o layout de um software ou site.
Varredura de código
Processo de analisar código-fonte para identificar problemas e vulnerabilidades.
Vulnerabilidades
Fraquezas em software que podem ser exploradas para causar danos ou obter acesso não autorizado.
Atenção: os termos selecionados são explicados de acordo com o contexto específico de cada capítulo.
Agora que você já sabe como utilizar o Git e entende sua importância no dia a dia da pessoa desenvolvedora, vamos continuar nossos aprendizados!
Chegamos em mais um "Dia" de curso, e até aqui tivemos muito conteúdo e novas informações pra você. Mas, até agora o assunto que mais falamos foi sobre Git, justamente para te dar uma boa base para que você possa utilizar o GitHub com mais propriedade e confiança.
É um sistema de Controle de Versão Distribuído (DVCS);
Cria e monitora um histórico detalhado de alterações;
Permite que versões antigas sejam recuperadas;
Possibilita a criação de branches para desenvolvimento assíncrono;
Mantém as branches atualizadas conforme código fonte principal;
É uma ferramenta local - você pode utilizá-lo sem precisar ter acesso à internet.
É uma plataforma de hospedagem de código-fonte e arquivos com controle de versão usando o Git;
Permite que você compartilhe seu trabalho com outras pessoas;
Possibilita a interação entre desenvolvedores (revisão, discussões, fóruns...);
Facilita o uso do Git, ao mesmo tempo que adiciona recursos próprios;
É um Software as a Service (SaaS) - um serviço online, portanto precisa de internet para ser acessado.
Então, para você nunca mais se confundir: o GitHub usa o Git. O Git pode viver sem o GitHub (inclusive, existem outras plataformas que podem ser utilizadas para hospedagem de códigos além dele), mas o GitHub não vive sem o Git. Até quando utilizado pela interface gráfica do GitHub, por debaixo dos panos, ele utiliza o Git para versionar seus códigos.
Git é um software.
É um serviço.
O Linux mantém o Git.
A Microsoft mantém o GitHub.
É uma ferramenta de linha de comando.
É uma interface gráfica de usuário.
Você pode instalá-lo localmente no sistema.
Está hospedado na web. É exclusivamente baseado em nuvem.
É um VCS para gerenciar o histórico do código-fonte.
É um serviço de hospedagem para repositórios Git.
Foca no compartilhamento de código e controle de versão.
Foca na hospedagem centralizada de código-fonte.
Não possui um recurso de gerenciamento de usuários.
Possui um recurso de gerenciamento de usuários integrado.
Git foi lançado em 2005.
GitHub foi lançado em 2008.
Git tem configuração mínima de ferramentas externas.
Possui um mercado ativo para integração de ferramentas.
É licenciado como open-source.
Possui uma camada gratuita e uma camada paga.
Sua interface desktop se chama Git GUI.
Sua interface desktop se chama GitHub Desktop.
Para não sobrar nem um pingo de dúvida, aqui vão as diferenças visuais:
print de um terminal ou gui
Este é o GitHub, a plataforma líder em projetos Open Source!
print github
Todas as pessoas que usam o GitHub.com se conectam com a plataforma através de uma conta pessoal (às vezes chamada de conta de usuário). Contas pessoais são perfis individuais criados para gerenciar seus próprios projetos de software e colaborar com outras pessoas na plataforma.
Imagine que há uma desenvolvedora chamada Ana e ela decide criar uma conta pessoal no GitHub. Essa conta é como sua identidade digital na plataforma. Nela, Ana pode hospedar todos os seus projetos de programação, como um aplicativo para gerenciar tarefas pessoais, chamado "GerenciadorTarefas". Cada projeto é armazenado em um "repositório", que funciona como uma pasta que contém todos os arquivos do seu projeto.
Assim como em redes sociais, Ana pode seguir outros desenvolvedores no GitHub para ver seus projetos e atualizações recentes. Da mesma forma, outros desenvolvedores podem seguir Ana para ficar por dentro do que está sendo criado.
Ana também pode colaborar com outras pessoas em um projeto abrindo "issues" para discutir problemas ou ideias relacionadas aos seus projetos. Por exemplo, se alguém encontrar um bug no aplicativo de Ana, essa pessoa pode abrir uma issue para descrever o problema. Ana e outros colaboradores podem discutir possíveis soluções e acompanhar o progresso da correção.
Os projetos na sua conta pessoal podem ser públicos ou privados. Projetos públicos são visíveis para qualquer pessoa na internet, o que é ótimo para mostrar seu trabalho para potenciais empregadores ou colaboradores. Já projetos privados são apenas visíveis para você e para as pessoas que você convidar explicitamente para colaborar. Isso é útil quando você está trabalhando em algo que ainda não está pronto para ser compartilhado com o público.
Uma conta pessoal no GitHub é como seu espaço pessoal na internet para mostrar suas habilidades em programação, colaborar com outros desenvolvedores e aprender com a comunidade global de código aberto. É uma ferramenta poderosa para desenvolvedores individuais gerenciarem e compartilharem seus projetos de software, seja para fins pessoais ou profissionais.
GitHub é uma plataforma poderosa e versátil, e um dos aspectos mais empolgantes é a vasta quantidade de repositórios de grandes projetos open source disponíveis. Vamos explorar alguns desses projetos notáveis, onde você pode ver o código e até colaborar:
O navegador Firefox tem seu código-fonte acessível. Isso permite que você veja como um dos navegadores mais populares é construído e contribua com melhorias e correções.
A plataforma de gerenciamento de conteúdo mais usada no mundo. Explore o código-fonte, entenda a arquitetura do sistema e colabore criando plugins e temas.
A criptomoeda mais famosa do mundo, Bitcoin, tem seu código-fonte disponível. Isso permite que você veja como a tecnologia por trás das criptomoedas funciona e participe do desenvolvimento.
Projetos de inteligência artificial de código aberto, incluindo modelos de linguagem avançados como GPT. Explore como esses modelos são desenvolvidos e participe do avanço da IA.
A linguagem de programação Python é usada em uma ampla gama de aplicações, desde desenvolvimento web até ciência de dados e aprendizado de máquina. Explore o código e participe do desenvolvimento de uma das linguagens mais populares do mundo.
O popular pacote de escritório open source, que inclui editores de texto, planilhas e apresentações. Contribua para o desenvolvimento de uma alternativa gratuita ao Microsoft Office.
O gerenciador de pacotes do macOS e do Linux. Contribua para a manutenção e aprimoramento da biblioteca de pacotes.
O reprodutor de mídia VLC, que suporta uma vasta gama de formatos de áudio e vídeo. Contribua para o desenvolvimento de novos recursos e correções de bugs.
O programa de manipulação de imagens GNU, uma alternativa open source ao Adobe Photoshop. Explore como ele funciona e contribua com novas funcionalidades.
O editor de áudio gratuito e open source, amplamente usado para gravação e edição de sons. Veja como ele é construído e colabore no seu desenvolvimento.
O software de criação de gráficos 3D, utilizado para modelagem, animação, renderização e muito mais. Contribua para um dos programas mais usados em produção 3D e animação.
Além desses, há muitos outros projetos famosos no GitHub, abrangendo uma vasta gama de áreas e interesses. Explorar esses repositórios permite que você entenda como funcionam os projetos que moldam as tecnologias usadas diariamente.
Apesar do GitHub conectar pessoas desenvolvedoras brasileiras com o mundo todo e trazer ferramentas incríveis, nem tudo são flores: infelizmente a única linguagem suportada na plataforma é o inglês!
Nosso compromisso na Cumbuca Dev é trazer conteúdos com acessibilidade, e entendemos que, apesar de ser muito utilizado na área, ter uma plataforma apenas em inglês pode trazer um certo bloqueio, principalmente para iniciantes. Pensando nisso, iremos apresentar algumas opções que podem facilitar o seu entendimento e autonomia dentro da plataforma.
Para colaborar, há repositórios 100% em português, assim como algumas documentações oficiais e o suporte do GitHub, mas toda a interação com a plataforma em si será em inglês.
Aqui no e-book e nos tutoriais em vídeo, manteremos a tela original em inglês, para apresentarmos e explicarmos a plataforma do jeito que ela é em qualquer navegador. Caso você sinta dificuldade com o inglês, aqui vão algumas dicas para melhorar sua comunicação com a plataforma.
Se você tem algum conhecimento em inglês, e apenas alguns termos ou expressões são desconhecidos para você, nada como nosso velho amigo google tradutor! Só copiar o trecho que lhe causa estranheza e pesquisar na barra do google utilizando "Frase ou texto a ser traduzido"+ tradução
Ao inserir na barra de pesquisa a frase + tradução (ou tradutor), o google automaticamente compreenderá o que você precisa, e irá te devolver com a tradução literal da frase solicitada.
Os navegadores oferecem uma ferramenta super útil para ajudar quebrar as barreiras do idioma! Com apenas alguns cliques, você pode traduzir páginas inteiras e entender melhor cada solicitação e interação na plataforma. E a melhor parte? Todos os navegadores mais populares possuem essa função gratuitamente, então você pode continuar utilizando o navegador que mais te agrada!
Se o seu navegador está configurado para Português, muito provavelmente quando você entrar em sites que não possuem suporte para a linguagem escolhida, uma caixa irá aparecer no canto superior direito, sugerindo a tradução para a página.
Caso essa opção não apareça automaticamente para você, não há problema algum, pois você pode escolher essa opção manualmente.
1 - Clique nos três pontinhos (um acima do outro), que estão no canto superior direto.
2 - Abaixo da sessão que inicia com "Print", na terceira linha há a opção "Translate...", clique nela e assim sua página receberá a caixa de diálogo com a opção para tradução, clique em português e sua página será traduzida integralmente.
O painel de tradução abrirá automaticamente. Caso não abra, clique no ícone de menu (três linhas horizontais) no canto superior direito do seu navegador. No menu, selecione "Traduzir esta página". Selecione o seu idioma preferido. O Firefox irá traduzir toda a página de acordo.
Clique no ícone de tradução à direita da barra de endereços. Selecione o seu idioma preferido. O Safari irá traduzir toda a página de acordo.
Clique no ícone de tradução na barra de endereços para abrir uma janela pop-up. Selecione o idioma estrangeiro desejado. Um idioma é considerado estrangeiro para você se não estiver na sua lista de idiomas preferidos nas configurações. O Microsoft Edge irá traduzir toda a página de acordo.
O GitHub surgiu com o objetivo principal de fornecer uma solução colaborativa para o desenvolvimento de software, onde as pessoas desenvolvedoras podem hospedar e compartilhar seus projetos utilizando o Git como sistema de controle de versão. Com o tempo, evoluiu significativamente, transformando-se em uma plataforma completa, repleta de ferramentas poderosas e recursos que facilitam desde a concepção até a colaboração e a inovação no campo do desenvolvimento de software.
Vamos agora destacar alguns exemplos de recursos do GitHub para demonstrar sua evolução como uma plataforma de desenvolvimento. Essas ferramentas não apenas facilitam o controle de versão e a colaboração em projetos, mas também oferecem soluções para gerenciar tarefas, automatizar fluxos de trabalho, realizar análises avançadas de código, garantir a segurança e muito mais. Elas ilustram como o GitHub atende às diversas necessidades dos desenvolvedores, impulsionando eficiência e inovação em todas as etapas do desenvolvimento.
Imagine ter um assistente pessoal enquanto você escreve uma redação ou uma mensagem de texto. Esse assistente não só sugere as palavras que você quer usar, mas também frases inteiras que se encaixam perfeitamente no que você está escrevendo. É exatamente isso que o GitHub Copilot faz, mas para código!
O GitHub Copilot é uma ferramenta de inteligência artificial que auxilia desenvolvedores a escrever código de maneira mais rápida e eficiente. É como um "autocompletar" para programação. À medida que você digita, o Copilot sugere linhas de código ou até mesmo blocos inteiros, economizando tempo e facilitando o trabalho.
Ele foi treinado com bilhões de linhas de código de projetos públicos no GitHub, por isso entende muitos dos padrões e técnicas usadas na programação. Quando você começa a escrever um comando ou função, o Copilot analisa o que você está fazendo e sugere como continuar, baseando-se em seu vasto conhecimento.
Além de sugerir código, o GitHub Copilot também oferece uma funcionalidade de chat. Imagine poder conversar com o seu assistente de programação! Com o GitHub Copilot Chat, você pode fazer perguntas sobre o código, pedir explicações sobre sugestões ou até mesmo solicitar ajuda para resolver problemas específicos. Isso torna o processo de desenvolvimento ainda mais interativo e eficiente, proporcionando suporte contínuo enquanto você trabalha.
Leia mais em:
Imagine que você tem uma linha de montagem automatizada para seu trabalho. Em vez de fazer tudo manualmente, você tem um sistema que realiza tarefas repetitivas e complexas automaticamente, garantindo que tudo funcione perfeitamente. É exatamente isso que o GitHub Actions faz, mas para o desenvolvimento de software!
GitHub Actions é uma ferramenta poderosa que permite automatizar, personalizar e executar fluxos de trabalho de desenvolvimento de software diretamente no GitHub. Funciona como uma linha de montagem digital que realiza tarefas automaticamente, simplificando e agilizando seu trabalho.
GitHub Actions permite criar fluxos de trabalho que são acionados por eventos específicos. Imagine que você tem um projeto de site no GitHub, por exemplo. Com GitHub Actions, você pode configurar para que, toda vez que alguém faça uma alteração no código do site e salve no GitHub, o sistema automaticamente gere uma versão atualizada do site e a disponibilize online. Isso significa que sempre que houver uma mudança no código, você não precisa se preocupar em atualizar manualmente o site — o GitHub Actions cuida disso para você de forma automática e eficiente.
Leia mais em:
O GitHub Pages é usado para criar, hospedar e compartilhar sites diretamente de um repositório no GitHub. É ótimo para criar sites pessoais, blogs, documentação de projetos e muito mais. Com o GitHub Pages, você pode facilmente configurar e atualizar seu site através do GitHub, sem precisar lidar com servidores complicados ou custos adicionais de hospedagem.
Basta configurar para que, sempre que atualizar ou fizer alterações no seu site no GitHub, essas mudanças sejam automaticamente refletidas na versão online. Além disso, você pode escolher um endereço personalizado para seu site, o que facilita para que outras pessoas encontrem seu trabalho online de maneira rápida e eficiente.
Resumindo, o GitHub Pages é uma maneira fácil e gratuita de criar, hospedar e compartilhar seu site na internet, permitindo que outros vejam e usem seu trabalho online de maneira simples e direta.
Leia mais em:
O GitHub Discussions é uma ferramenta que permite criar e gerenciar discussões diretamente em repositórios no GitHub. É ideal para interagir com a comunidade, compartilhar ideias, perguntas e receber feedback sobre projetos. É como ter um espaço de fórum integrado ao GitHub, onde você pode trocar informações e colaborar de forma organizada.
As discussões podem ser usadas para resolver dúvidas, coletar sugestões de melhorias ou simplesmente para permitir que a comunidade compartilhe experiências relacionadas ao projeto. É uma maneira eficaz de envolver colaboradores e usuários interessados no desenvolvimento do seu software.
O GitHub Discussions é uma ferramenta poderosa para facilitar a comunicação e interação entre os membros da comunidade de um projeto, ajudando a construir uma base de conhecimento compartilhada e promovendo a colaboração contínua.
Leia mais em:
GitHub Codespaces é como ter um espaço de trabalho de desenvolvimento pronto para usar diretamente no seu navegador. Você não precisa se preocupar em configurar um ambiente de programação complicado no seu próprio computador.
Com o GitHub Codespaces, você pode criar e testar seu código sem problemas, porque tudo o que você precisa está na nuvem. É como ter um computador virtual personalizado para escrever código, acessível de qualquer lugar.
Isso é ótimo para colaborar com outras pessoas em projetos de software, pois todos podem trabalhar no mesmo ambiente, independentemente do computador que estão usando.
Leia mais em:
O GitHub Security é um conjunto de ferramentas e recursos que ajudam a proteger seu código e projetos no GitHub. Ele oferece várias funcionalidades para garantir a segurança do seu código e das colaborações no desenvolvimento de software.
Com o GitHub Security, você pode escanear seu código em busca de vulnerabilidades conhecidas, como problemas de segurança ou dependências desatualizadas. Isso ajuda a identificar e corrigir problemas de segurança antes que se tornem um problema sério.
Além disso, o GitHub Security também fornece alertas de segurança para notificar você sobre possíveis vulnerabilidades em suas dependências ou em código malicioso que possa ter sido inserido no seu repositório.
Essas ferramentas são essenciais para manter a integridade do seu código e proteger contra ameaças de segurança enquanto você trabalha no desenvolvimento de software.
Leia mais em:
Às vezes, enquanto trabalha em um projeto no GitHub, você cria pequenas peças de código que são como blocos de Lego específicos e úteis para resolver problemas. Cada bloco (ou peça de código) pode ter uma função importante, como uma peça especial em um conjunto de Lego que ajuda a construir algo maior e mais complexo.
Com o GitHub Packages, você pode disponibilizar esses blocos individuais de código de maneira organizada e segura, para que outras pessoas possam usá-los em seus próprios projetos. Isso é como compartilhar blocos de Lego específicos que você construiu, permitindo que outras pessoas os utilizem em suas próprias criações sem precisar revelar todo o seu conjunto de Lego (ou projeto completo).
Ao disponibilizar apenas essas partes do código, você facilita a colaboração e o compartilhamento de soluções entre equipes e projetos diferentes no GitHub, mantendo controle sobre quais partes do seu trabalho você deseja disponibilizar para uso externo.
Leia mais em:
Em nosso curso introdutório, focamos no objetivo essencial do GitHub: simplificar o controle de versão e promover a colaboração eficaz em projetos de desenvolvimento de software. Ao mesmo tempo, é importante reconhecer que o GitHub oferece uma variedade enorme de funcionalidades além dessas, o que ajuda a explorar possibilidades avançadas da plataforma e a se familiarizar com seu ecossistema completo. Isso permite que se identifique e utilize os recursos que melhor se adequam às suas necessidades específicas, ajudando a entender o que é relevante ou não para seus projetos.
Caso tenha interesse, aqui você encontra a página que apresenta todas as features disponíveis:
E aqui está a documentação em Português para cada uma elas:
Se você se recorda das aulas passadas, com certeza sabe que essa é uma pegadinha! Apesar da semelhança nos nomes: e são duas ferramentas bem distintas. É raro, mas acontece muito das pessoas confundirem os dois! Por isso estamos aqui pra te ajudar a não cometer este erro. Vamos relembrar alguns pontos:
Este aqui é o Git, :
Agora sim, com todos as possíveis dúvidas quanto à essas ferramentas já resolvidas, vamos para o que interessa: Conhecer ainda mais sobre a plataforma mais utilizada entre as pessoas desenvolvedoras do mundo todo!
Por exemplo, o é uma conta fictícia no GitHub usada para demonstrar funcionalidades da plataforma. Seu repositório é um exemplo clássico de projeto público, visível para qualquer pessoa na internet.
print do perfil do
Caso você não queira usar o tradutor, há também a opção das IAs: e o , que são rápidos e eficientes na tradução de textos, frases e tudo mais o que você precisar! Rs
As contas corporativas no GitHub são projetadas para grandes empresas que precisam de um controle ainda mais robusto e centralizado sobre suas operações de desenvolvimento de software. Vamos explorar isso com um exemplo prático:
Imagine a SaúdeDigital Corp., uma corporação que abriga duas subsidiárias: SaúdeTech e FarmáciaTech. Enquanto SaúdeTech se dedica ao desenvolvimento de aplicativos de monitoramento de saúde e portais para pacientes, FarmáciaTech foca em sistemas para otimização do atendimento em farmácias.
Cada subsidiária opera com suas próprias equipes e projetos, todos geridos sob o guarda-chuva da SaúdeDigital Corp. Esse arranjo facilita a gestão centralizada de diversas equipes e projetos espalhados por diferentes áreas de atuação.
Dentro da SaúdeDigital Corp., cada subsidiária é tratada como uma organização separada no GitHub, permitindo um controle preciso sobre o acesso aos repositórios. Por exemplo, as subsidiárias podem colaborar em repositórios de código compartilhados para desenvolver soluções conjuntas que beneficiem ambas.
Suponha que haja um projeto em que SaúdeTech e FarmáciaTech desejem colaborar, como o desenvolvimento de um aplicativo para pacientes que permite fazer pedidos diretamente às farmácias. Nesse caso, elas podem compartilhar um repositório específico para esse fim, permitindo que ambas as equipes contribuam para o projeto de forma coordenada e eficiente.
Por outro lado, há casos em que certos repositórios contêm informações estratégicas que não devem ser divulgadas amplamente. Por exemplo, a FarmáciaTech pode manter um repositório privado com detalhes sobre a integração de seus sistemas de atendimento ao cliente com fornecedores de medicamentos. Nesse cenário, apenas membros autorizados da FarmáciaTech terão acesso ao repositório, assegurando a segurança e a confidencialidade das informações.
As contas corporativas no GitHub oferecem uma gestão centralizada e eficiente de múltiplas organizações e projetos, assegurando segurança, consistência e facilidade na administração de grandes equipes de desenvolvimento de software dentro de grandes empresas.
Todas as pessoas que usam GitHub efetuam o login em uma conta pessoal. A conta de uma organização aprimora a colaboração entre várias contas pessoais, e uma conta corporativa permite o gerenciamento central de várias organizações.
imagem para demonstrar essa relação. Sem ideias ainda
Agora que você entende melhor todos os conceitos e fundamentos, que tal se tornar parte da maior rede de pessoas desenvolvedoras do mundo?
Como te falamos no primeiro dia, para criar uma conta pessoal no GitHub é super simples: você irá precisar apenas de um e-mail que você já tenha acesso. Este e-mail será utilizado inicialmente na verificação da conta, e caso precise no futuro ele será o meio de comunicação entre você e a plataforma (recuperação de senha, novidades e muito mais).
Pegue seu melhor e-mail e vem com a gente nesse tutorial!
Opa! Boas vindas ao futuro mais novo integrante da rede! :)
Ao centro, temos um quadro em branco escrito "Email address", ao lado de um botão roxo escrito "Sign up for GitHub". Neste quadro, digite seu melhor e-mail, confira se está correto e clique no botão roxo, logo ao lado para seguirmos!
Você será redirecionado para esta página:
Aqui, seu e-mail aparece novamente, confirme novamente se o endereço está completo e correto, e siga em "Continue".
Endereço correto, após o clique aparece uma nova linha que diz: "Create a password", que nada mais é do que o GitHub pedindo para você criar a sua SENHA.
REGRA:
A senha para acessar o GitHub precisa ter no mínimo 15 caracteres OU no mínimo 8 caracteres que incluam um número e uma letra minúscula.
Se a sua senha foi aceita nos parâmetros da plataforma, ela aparecerá assim: com "Continue" em verde e também abaixo da caixa, afirmando que sua Senha é forte o suficiente.
Se na sua tela esta mensagem aparece em vermelho ou amarelo, significa que sua senha ainda precisa de mudanças para poder ser utilizada. Mude o que for preciso, até que a mensagem se torne verde, como na imagem acima, só assim poderemos seguir.
Senha aceita, clicaremos em Continue. Importante lembrar: esta será sua senha de acesso na plataforma, salve ou anote (conforme você costuma fazer), ela é pessoal e daqui pra frente você pode precisar dela!
Ao clicar Continue, um novo campo aparece: "Enter a username", no qual você cria o seu nome de usuário. Como no Instagram ou Twitter, este nome será o seu "@", como você será mencionado nesta rede.
A regra para a criação de um nome de usuário é bem simples, mas você precisa se atentar se outras pessoas já escolheram o mesmo nome.
REGRA:
Conforme você for escrevendo sua ideia de username, assim como na etapa anterior, abaixo da caixa de diálogo, enquanto o nome não estiver disponível ou correto conforme a regra, ele te dá algumas ideias do que pode ser utilizado de acordo com o que você escreveu.
Agora aparece o campo para as preferências de e-mail, que indica se você quer receber atualizações e anúncios importantes relacionados ao GitHub. Aqui é opcional, você pode selecionar a opção ou não, não faz diferença na criação da tua conta.
No meu caso, fiz a verificação por imagem, pois considerei mais fácil, mas fique à vontade para utilizar qual você se sentir melhor.
Abaixo está o meu "desafio", que consistia em utilizar as flechas para mudar o ângulo do objeto na direita (bota), para o mesmo sentido da imagem na esquerda (mão). Você pode reiniciar no botão Restart ou mudar para a opção de Audio mesmo depois de ter iniciado, é bem tranquilo!
Não levou muito tempo para concluir, e assim que posicionei conforme o solicitado foi só clicar em Submit para enviar minha resposta e seguir com com a Criação da conta.
Oba! Chegamos à parte final do tutorial: sua conta no GitHub foi criada com sucesso, esta é a tela de login do GitHub, dizendo que você está pronto para entrar na sua nova conta!
Fique frio, nos próximos capítulos iremos te apresentar um pouquinho mais desta plataforma incrível e todas as possibilidades que ela te oferece!
O painel lateral esquerdo apresenta os filtros disponíveis projetados para otimizar a experiência de gerenciamento de notificações.
Na primeira parte do painel, temos 3 filtros predefinidos:
Inbox: Reúne todas as notificações que ainda não foram marcadas como concluídas.
Saved: Mostra suas notificações que foram salvas por você no passado. Permite acesso rápido, garantindo que informações cruciais estejam sempre à mão.
Done: Mostra suas notificações que foram marcadas como concluídas (marcadas como done ✓) por você no passado.
Abaixo, temos a seção do painel intitulada Filters:
Aqui você pode utilizar os filtros já pré-existentes e também pode criar filtros novos, clicando em + Add new filter.
Em seguida, temos a seção Repositories. Aqui você pode filtrar notificações para repositórios específicos.
Por fim, existe a opção Manage Notifications:
Clicando na seta, temos:
All: Mostra todas as notificações
Unread: Mostra apenas as notificações não lidas
Exemplo de busca:
Permite agrupar as notificações por data ou repositório.
A área central de notificações exibe uma lista com suas notificações atuais. Cada item inclui informações resumidas, como:
Título da notificação
Autor da atividade
Repositório associado
Opção 1: Selecionar e aplicar ações em massa.
Use a caixa de seleção ao lado de uma ou mais notificações para realizar ações coletivas.
Opção 2: Interagir com notificações individualmente
Clique na notificação para ver o contexto completo, tomar uma ação (responder, fechar, etc.), e retornar à lista.
Segue a lista de ações possíveis para uma notificação:
Done
O que faz: Marca a notificação como concluída e a remove da lista principal de notificações.
Quando usar: Após resolver ou revisar o assunto relacionado.
Para onde vai: Fica acessível no filtro "Done" para referência futura.
Unsubscribe
O que faz: Cancela sua inscrição na issue, pull request ou discussão, impedindo novas notificações relacionadas.
Quando usar: Quando o tópico não é mais relevante para você.
Nota: Essa ação não remove notificações já recebidas, apenas bloqueia futuras.
Mark as read
O que faz: Define a notificação como lida, removendo o destaque em negrito que indica novidade.
Quando usar: Quando você já visualizou a notificação, mas não deseja marcá-la como concluída.
Para onde vai: Continua na lista, mas sem o destaque visual de "não lida".
Mark as unread
O que faz: Reverte o status da notificação para não lida, destacando-a novamente como pendente.
Quando usar: Quando precisa priorizar ou lembrar de revisitar a notificação.
Para onde vai: Permanece na lista, destacada como algo que requer atenção.
Save
O que faz: Salva a notificação em uma lista especial chamada "Saved", para fácil acesso no futuro.
Quando usar: Para notificações importantes que você deseja revisar mais tarde.
Para onde vai: É armazenada no filtro "Saved", junto com outras notificações salvas.
Se você já tem notificações, aproveite para conhecer melhor a página:
Use a barra de busca no topo da página para filtrar notificações relacionadas a um repositório específico, como cumbucadev/gitcaos.
Marque notificações como concluídas, salve as mais importantes, ou gerencie suas inscrições para ajustar o fluxo de atualizações.
Acesse o repositório.
Clique no botão "Watch" no canto superior direito.
Escolha o tipo de notificação que deseja receber:
"All Activity": Todas as atividades do repositório.
"Participating and @mentions": Apenas as que envolvem você diretamente.
"Custom": Configure notificações específicas para issues ou pull requests.
"Ignore": Desativa notificações.
Explore e personalize suas notificações para ficar por dentro do que importa! 🎯
Sem pressa! Assim que você começar a colaborar, as notificações irão aparecer, e você estará pronto para gerenciá-las como um expert. 🚀
Para saber tudo sobre notificações, acesse a documentação oficial:
Nota: As páginas do GitHub são atualizadas frequentemente, o que pode levar a pequenas divergências nesta documentação. No entanto, o núcleo das informações e funcionalidades geralmente permanece consistente.
O GitHub oferece planos gratuitos e pagos para armazenar e colaborar no código. Há um plano pensado para cada tipo de usuário, desde a pessoa desenvolvedora individual até grandes corporações. Com quatro opções distintas — GitHub Free, GitHub Pro, GitHub Team e GitHub Enterprise — é possível escolher um plano que não apenas se alinha ao seu orçamento, mas também ao seu nível de colaboração e gerenciamento de projetos.
Esses planos variam em termos de recursos e funcionalidades, permitindo que tanto os indivíduos quanto as organizações encontrem a solução ideal para suas atividades de desenvolvimento. A seguir, apresentamos uma visão clara da relação entre os planos e os tipos de contas, facilitando a compreensão de qual opção é a mais adequada para cada situação.
GitHub Free: disponível para contas pessoais e contas de organizações
GitHub Pro: disponível para contas pessoais
GitHub Team: disponível para contas de organizações
GitHub Enterprise: disponível para contas corporativas e contas de organizações
Planos Oferecidos
Tipos de Contas
GitHub Free
Contas Pessoais
Contas de Organizações
GitHub Pro
Contas Pessoais
GitHub Team
Contas de Organizações
GitHub Enterprise
Contas Corporativas
Contas de Organizações
Outra maneira de visualizar essa relação é através dos tipos de conta:
Contas Pessoais: pode estar no plano GitHub Free (de graça) ou no plano GitHub Pro (pago)
Contas de Organizações: pode estar no plano GitHub Free (de graça), no plano GitHub Team (pago) ou no plano GitHub Enterprise (pago)
Contas Corporativas: estão sempre associadas ao plano GitHub Enterprise (pago)
Tipos de Contas
Planos Oferecidos
Contas Pessoais
GitHub Free
GitHub Pro
Contas de Organizações
GitHub Free
GitHub Team
GitHub Enterprise
Contas Corporativas
GitHub Enterprise
O GitHub Free é uma opção gratuita que oferece o básico para indivíduos e organizações. Qualquer pessoa pode se inscrever para obter a versão gratuita do GitHub.
O GitHub Free para Contas Pessoais oferece aos usuários individuais a capacidade de criar e gerenciar repositórios públicos e privados de maneira ilimitada. Essa conta é ideal para pessoas desenvolvedoras que trabalham em seus próprios projetos ou colaboram em projetos de outras pessoas, com flexibilidade para convidar colaboradores sem limitações. Diferente das contas de organizações, ela é voltada para o gerenciamento pessoal de projetos e não inclui ferramentas avançadas de gerenciamento de equipes.
O GitHub Free para Organizações permite que organizações colaborem em projetos com várias pessoas. Ele oferece acesso a recursos básicos tanto para repositórios públicos quanto privados, permitindo que as equipes trabalhem de forma eficiente em projetos conjuntos. A principal diferença em relação ao GitHub Free para Contas Pessoais é que o plano de organizações inclui ferramentas de gerenciamento de equipe, permitindo estruturar e organizar colaboradores com diferentes níveis de acesso, o que facilita a administração e o controle dos projetos dentro da organização.
O GitHub Pro é uma versão aprimorada do GitHub Free, voltada para usuários individuais que desejam mais recursos e insights sobre seus projetos. Ele oferece ferramentas avançadas para quem trabalha de forma independente, permitindo maior controle, personalização e métricas mais detalhadas em seus repositórios. O GitHub Pro é ideal para quem busca maximizar sua produtividade e melhorar sua experiência de desenvolvimento, sem fazer parte de uma equipe ou organização formal.
O GitHub Team é uma versão voltada para organizações que oferece recursos colaborativos avançados em comparação ao GitHub Free. Ele proporciona maior controle sobre a gestão de equipes, permitindo uma melhor organização de projetos e acesso a funcionalidades adicionais que melhoram a eficiência do trabalho em grupo. Com o GitHub Team, as organizações podem gerenciar suas operações de desenvolvimento de forma mais estruturada, sem a necessidade dos recursos empresariais do GitHub Enterprise.
O GitHub Enterprise é a solução mais robusta e completa da plataforma, voltada para grandes organizações que exigem controle, segurança e recursos avançados. Ele oferece uma ampla gama de funcionalidades para gerenciar equipes e projetos em escala, garantindo a conformidade com políticas internas e regulamentações. O GitHub Enterprise permite que as organizações personalizem sua infraestrutura de desenvolvimento, integrem-se a ferramentas corporativas e tenham acesso a suporte dedicado. Essa versão é ideal para empresas que buscam maximizar a eficiência de seus processos de desenvolvimento em um ambiente seguro e escalável.
Conta Pessoal:
Conta da Organização:
Precisa estar logado na sua conta pessoal e ter acesso à organização.
Acesse: https://github.com/organizations/nome_da_organização/billing/plans substituindo "nome_da_organização" pelo nome da sua organização
Exemplo: https://github.com/organizations/cumbucadev/billing/plans
Para este curso em questão, o GitHub Free para Contas Pessoais será mais do que suficiente. Ele oferece todas as funcionalidades necessárias para criar, gerenciar e colaborar em repositórios, tanto públicos quanto privados. Você poderá acompanhar seu progresso, compartilhar projetos e interagir com outros desenvolvedores sem qualquer limitação que afete suas atividades no curso.
No entanto, é sempre bom conhecer as demais opções, como o GitHub Pro e o GitHub Team, que podem ser úteis em situações futuras, especialmente se você desejar mais controle ou estiver trabalhando em projetos colaborativos mais avançados.
Quando você está logado no GitHub com sua conta, a página inicial apresenta várias seções e elementos que oferecem uma visão geral das suas atividades, repositórios e sugestões personalizadas.
A barra superior está sempre presente em todas as páginas do GitHub e oferece acesso rápido a recursos importantes.
Aqui está o que cada item faz:
Localizado no canto superior esquerdo, o menu sanduíche exibe uma lista de opções de navegação, como iniciar um novo projeto, acessar pastas recentes e configurar preferências. É especialmente útil em dispositivos móveis ou quando se deseja ocultar o painel lateral para maximizar o espaço de tela disponível.
Caso você já possua repositórios, eles também serão exibidos na expansão:
Bem como seus times, caso você pertença a algum:
Ao clicar, ele sempre irá levar você de volta à página inicial do GitHub.
Permite pesquisar repositórios, usuários, issues e pull requests em toda a plataforma.
Oferece atalhos para criar novos repositórios, gists, issues, pull requests e iniciar novos projetos.
Redireciona para as issues que você criou ou está acompanhando.
Leva você à lista de pull requests abertos ou criados por você.
Redireciona você para a Página de Notificações. Esta página exibe notificações de atividades relacionadas aos repositórios que você está envolvido, como issues, pull requests, e comentários.
Iremos falar um pouco mais sobre a página de notificações logo em seguida:
Ao clicar na sua foto de perfil, abrirá uma barra contendo opções de navegação para o seu perfil, seus repositórios, definições, e outras configurações de conta.
Iremos falar um pouco mais sobre a página de configurações (Settings) logo mais adiante:
O GitHub Copilot é como um "ajudante virtual" que escreve códigos para você enquanto você programa. Ele usa inteligência artificial para sugerir trechos de código, corrigir erros ou até criar funções inteiras com base no que você está fazendo. Experimente conversar com ele! Escreva o quê você deseja e aperte Enter. Por exemplo:
O Feed de Atividades é a área principal e central da tela. Ele mostra atualizações e atividades relacionadas aos repositórios e pessoas que você segue.
Se você for uma pessoa nova na plataforma, verá dicas do GitHub para ajudar em seus primeiros passos:
Caso você já tenha interagido um pouco com a sua conta, essa seção irá incluir:
Commits que foram feitos nos repositórios que você segue.
Issues e Pull Requests criados ou atualizados.
Releases publicadas em projetos que você acompanha.
Contribuições feitas por você ou outros que você segue. Este feed é uma ótima maneira de acompanhar o que está acontecendo nas suas comunidades e nos seus repositórios de interesse.
Trending Repositories: o GitHub mostra para você projetos que estão ganhando popularidade na plataforma. Essa área é ideal para se inspirar, encontrar novas oportunidades de contribuição e ficar atualizado com o que está em alta na comunidade de desenvolvimento.
Recommended for You: o GitHub oferece seleções personalizada de repositórios e tópicos que podem ser do seu interesse, com base nas suas atividades e interações passadas na plataforma.
Entre outras atividades que o GitHub acha relevante para ajudar a manter você conectado com a comunidade, oferecendo oportunidades variadas para se envolver e contribuir.
O painel lateral esquerdo da home do GitHub é projetado para oferecer acesso rápido e fácil a várias funcionalidades importantes da plataforma.
Quando a conta do usuário é nova, o painel apresentará apenas um bloco para criação de novo repositório:
No caso de uma conta que já possui interações no GitHub, o painel será mais ou menos assim:
Ao clicar no nome do seu usuário, aparecerá o "switch dashboard context" menu. Este menu permite alternar entre diferentes contextos, como sua conta pessoal ou organizações das quais você faz parte. Isso ajuda a personalizar o painel inicial, exibindo apenas as atividades, notificações e repositórios relacionados ao contexto selecionado, tornando mais fácil focar no que é relevante para cada ambiente.
Mostra uma lista dos repositórios mais relevantes para você, como os que você acessa com frequência, colabora regularmente ou que têm alta atividade recente.
O botão verde "new" leva você diretamente para página de criação de um novo repositório.
Exibe atualizações e atividades recentes nos repositórios e projetos que você segue ou contribui, como pull requests, issues, e commits.
Lista as equipes das quais você faz parte dentro das organizações no GitHub, facilitando o acesso às discussões, repositórios e atividades específicas de cada time.
No painel encontra-se principalmente informações dos seguintes tipos:
GitHub News/Updates: Informações sobre novos recursos, eventos ou atualizações do GitHub.
Explore repositories: Sugestões de repositórios que podem te interessar com base nos seus interesses e atividades anteriores no GitHub. Aqui, você encontra projetos em que pode estar interessado em contribuir ou seguir.
A página inicial do GitHub organiza tudo de forma prática, oferecendo acesso rápido a repositórios, atividades e equipes, além de sugestões e atualizações personalizadas. Com um layout intuitivo, ela conecta você facilmente às ferramentas e informações mais relevantes para sua experiência como desenvolvedor.
Agora, aproveite para explorar a sua home do GitHub e se familiarizar com as funcionalidades disponíveis!
Nota: A página inicial do GitHub é atualizada frequentemente, o que pode levar a pequenas divergências nesta documentação. No entanto, o núcleo das informações e funcionalidades geralmente permanece consistente.
Ah, não se preocupe com os termos em inglês: logo ajustaremos para o português.
Dicas
Segundo o GitHub, o nome de usuário deve conter apenas (Números de 0-9 e letras de A-Z, sendo maiúsculas ou minúsculas) ou hífen simples. Não pode começar ou terminar com hífen (-).
Caso você não consiga o username que tanto queria, ou está sem criatividade para fazer isso agora, não se preocupe: depois da conta criada você pode alterar seu nome de usuário mais tarde!
Seguindo, entramos na primeira verificação da conta, um processo de segurança para o sistema saber se você é uma pessoa real ou um (Hasta la vista, Baby!):
concluída com sucesso, a tela recarrega com a seguinte mensagem: "Você está quase terminando! Enviamos um "código de lançamento" para o teu e-mail." Precisaremos entrar na conta dele para pegar o código que foi enviado pelo GitHub especialmente para você!
Vá até a sua conta de e-mail, seja ela qual for (gmail, outlook, hotmail, ...) e procure em sua Caixa de Entrada um e-mail com o seguinte assunto: Your GitHub Launch code. Caso não houver nenhuma nova mensagem do GitHub, procure na sua caixa de Spam ou Lixo Eletrônico (alguns e-mails detectam atividade desconhecida de forma diferente).
E-mail recebido, é bem simples: só pegar esse código de oito dígitos (ao centro), copiar e colar lá na página de verificação do GitHub. Parabéns, conta criada no GitHub!
Caso você tenha procurado no seu e-mail, mas não recebeu a mensagem em lugar algum, você pode retornar na (imagem) e abaixo dos quadrados para inserir o código há uma mensagem: "Não recebeu o e-mail? Reenvie o Código OU Atualize seu endereço de e-mail". A primeira opção provavelmente já irá resolver e te reenviar um e-mail como este acima. Se mesmo assim você ainda não tiver recebido, provavelmente seu endereço de e-mail possuí algum erro, aí é só clicar na segunda opção para fazer o ajuste.
Se você chegou até aqui: agora é só alegria!! No primeiro espaço você preenche seu ou , no segundo você preenche a sua escolhida especialmente para essa plataforma! Aí é só clicar em Sign In e...
... Tcharamm: esta é a página inicial de um novo usuário no GitHub! Estamos felizes de ter você até aqui, mas você viu quanta informação em somente uma tela?
A página de notificações do GitHub () é onde você encontra todas as atualizações sobre atividades relacionadas aos repositórios e pessoas que você segue. Ela centraliza tudo o que acontece nos projetos em que você está envolvido, como novas issues, pull requests e comentários. Essa página ajuda a manter você atualizado sem precisar ficar visitando cada repositório ou discussão individualmente.
Para saber mais sobre esses filtros e como criar novos, veja a documentação oficial . Atente-se também para as .
Aqui você gerencia quando e como você deseja ser notificado. Para saber mais, confira a documentação oficial:
Permite que você pesquise notificações específicas usando filtros. A busca funciona da mesma maneira que a busca dos filtros personalizados. Portanto, você pode conferir como fazer uma busca na documentação oficial . E atente-se para as .
Sem problemas! Comece se inscrevendo em um repositório que te interessa. Por exemplo, no :
Para uma análise mais detalhada de preços e recursos por plano, acesse: .
Você precisa estar logado. Acesse .
Nesta seção você pode utilizar a caixa de texto para interagir com o .
Aqui estão os links que consideramos relevantes na construção deste Capítulo. Disponibilizamos para caso queira ampliar seus estudos de boas fontes :)
Sabemos que existem muitas opções por aqui, mas não se preocupe! Vamos começar com o essencial para você agora. O restante você aprenderá aos poucos, conforme explora e se sente mais à vontade.
Não é preciso dominar tudo de uma vez – cada configuração é uma chance de tornar sua conta mais sua. Com o tempo, você descobrirá o que funciona melhor para o seu estilo e objetivos. Pronto para personalizar sua experiência? Vamos lá!
Aqui, você pode configurar informações que outras pessoas veem sobre você
É possível adicionar uma foto, nome, biografia e informações como localização, site e redes sociais.
Essas opções permitem que outros usuários conheçam mais sobre você ou sua organização.
Leia mais sobre isso na documentação oficial:
Essa seção permite gerenciar informações fundamentais relacionadas à sua conta, como credenciais e preferências gerais.
É possível fazer ações como gerenciar o nome de usuário e exportar dados sobre sua conta
Também há a opção de desativar ou excluir a conta, se necessário.
Oferece ajustes visuais que ajudam a melhorar sua experiência de navegação no GitHub.
Personalizar a aparência ajuda a criar uma experiência visual mais confortável.
Contém configurações que tornam o uso da plataforma mais inclusivo.
Há opções para ativar suporte a leitores de tela, por exemplo, ou ajustar o contraste.
Essas configurações podem ser adaptadas às suas necessidades específicas.
Leia mais sobre isso na documentação oficial:
É possível ajustar como as notificações sobre atividades no GitHub são recebidas, como issues e pull requests.
Você pode escolher entre notificações por e-mail, web ou apps para gerenciar informações de forma eficaz.
Leia mais sobre isso na documentação oficial:
Informações sobre planos, sejam gratuitos ou pagos, estão disponíveis nesta seção.
É possível acompanhar cobranças e gerenciar serviços, como GitHub Pro ou Teams.
É possível associar endereços de e-mail à conta, garantindo que notificações e commits sejam vinculados corretamente.
O e-mail principal para comunicações pode ser configurado de acordo com sua preferência.
Essas configurações ajudam a garantir que você receba comunicações importantes e vincule ações realizadas no GitHub.
Leia mais sobre isso na documentação oficial:
Inclui opções de segurança para proteger sua conta e gerenciar acessos.
A senha da conta pode ser alterada aqui, por exemplo.
Há a opção de ativar a autenticação em dois fatores (2FA), garantindo maior segurança.
Sessões ativas e dispositivos confiáveis também podem ser gerenciados.
Agora que você está se preparando para aproveitar ao máximo sua conta no GitHub, vamos passar pelas principais seções da página de configurações e ajustar tudo para que seu perfil reflita quem você é e como você se apresenta na plataforma.
A primeira coisa a fazer é preencher as informações da sua página de perfil público. Isso ajuda a dar uma cara mais pessoal à sua conta e permite que as pessoas se conectem com você mais facilmente.
Adicione o seu nome: O nome que você colocar aqui será visível para outras pessoas e é como você será reconhecido na plataforma.
Coloque uma foto: Uma imagem vale mais que mil palavras! Escolha uma foto de perfil que seja sua e que represente sua identidade profissional.
Escreva uma pequena bio: Uma breve descrição sobre quem você é, o que faz, ou até mesmo o que você está buscando no GitHub pode ajudar a mostrar sua personalidade e facilitar conexões.
Defina seus pronomes: Isso é importante para que todos saibam como se referir a você de maneira respeitosa e inclusiva.
Adicione suas redes sociais: Se desejar, adicione links para suas redes sociais ou outras formas de contato para que as pessoas possam seguir seu trabalho ou se conectar com você.
Clique em "Update Profile": Depois de preencher tudo, não se esqueça de salvar as alterações clicando no botão de atualização do perfil.
Se você estiver em busca de novas oportunidades, também pode indicar isso. Marque a opção Available for hire caso esteja procurando emprego. Assim, os recrutadores poderão facilmente saber que você está disponível para novas propostas. Após isso, basta clicar em Save Job Profile para salvar essas informações.
Aqui, você pode personalizar o visual do seu GitHub, ajustando as cores e o tema do site conforme suas preferências. Isso não só deixa o ambiente mais confortável para você, mas também dá um toque pessoal à sua conta.
Customize a aparência do seu GitHub: Escolha entre temas claros ou escuros, e ajuste as cores para deixar sua navegação ainda mais agradável e personalizada.
A segurança da sua conta é essencial! Para garantir que ninguém mais acesse sua conta sem autorização, é fundamental ativar a autenticação em dois fatores (2FA). Isso adiciona uma camada extra de proteção que torna a sua conta muito mais segura.
Por que o 2FA é tão importante?
Com o 2FA, além da sua senha, será necessário um código adicional enviado para seu celular ou gerado por um aplicativo. Mesmo que alguém consiga descobrir sua senha, não conseguirá acessar sua conta sem esse código.
Após a ativação, você estará um passo mais perto de garantir que sua conta no GitHub esteja completamente protegida. Vamos seguir para o próximo passo com a segurança reforçada!
Agora que você configurou seu perfil e ativou a segurança da sua conta, está pronto para explorar o GitHub ao máximo! Personalize sua conta no seu ritmo e aproveite todas as opções que o GitHub oferece. Lembre-se, cada configuração é uma oportunidade para tornar sua experiência ainda melhor. Continue explorando e se sentindo à vontade com seu espaço no GitHub.
Nota: A página de configurações do GitHub é atualizada frequentemente, o que pode levar a pequenas divergências nesta documentação. No entanto, o núcleo das informações e funcionalidades geralmente permanece consistente.
A página de configurações do GitHub () é onde você pode personalizar sua conta, ajustar preferências e gerenciar diversas funcionalidades.
É fundamental ativar o 2FA antes de seguir em frente! Para configurar, siga o passo a passo na . Lá você encontrará tudo o que precisa para configurar a autenticação de forma segura.
Chegou o momento de criar seu primeiro repositório no GitHub! Siga este passo a passo para criar o repositório e entender cada etapa do processo:
No canto superior direito de qualquer página, selecione e clique em New Repository (Novo repositório):
Repository name (nome do repositório): hello-world
Description (descrição): Meu primeiro repositório no GitHub
Essa descrição ajuda outras pessoas (ou até você mesmo no futuro) a entender rapidamente o objetivo do projeto.
Selecione a opção Public (público)
Tornar o repositório público significa que qualquer pessoa poderá acessá-lo e visualizá-lo. Isso é ótimo para projetos iniciais ou se você quiser compartilhar com a comunidade.
Selecione a opção Add a README file (Adicionar um arquivo README)
O README
é um dos arquivos mais importantes de qualquer repositório. Ele funciona como a página inicial do seu projeto, explicando o que é, como usá-lo e outras informações úteis.
Ao selecionar esta opção, o GitHub criará um README
básico para você automaticamente. Ele pode ser editado depois para incluir detalhes mais completos sobre o seu projeto.
Não altere mais nada
Para este primeiro repositório, as configurações padrão já são suficientes.
Clique no botão Create Repository (Criar repositório).
Após criar o repositório, você verá uma nova página com detalhes do projeto.
Parabéns, você deu o primeiro passo na sua jornada no GitHub! 🎉 Nosso próximo passo é explorar um pouco deste novo repositório criado.
Por que hello-world
? Esse nome é uma tradição na programação e representa o primeiro passo ao aprender algo novo. Traduzido para o português, significa "olá, mundo". É como uma introdução ao mundo da tecnologia e uma forma de testar que tudo está funcionando. Para saber mais sobre a história e o significado por trás do "Olá, Mundo", confira o blog post no site da Cumbuca Dev.
Um repositório é o elemento mais básico do GitHub. É um lugar onde você pode armazenar seu código, seus arquivos e o histórico de revisão de cada arquivo. Os repositórios podem ter vários colaboradores e podem ser públicos ou particulares.
Lembra-se das primeiras aulas sobre Git, quando exploramos o conceito de repositórios e explicamos que eles podem ser locais ou remotos? Neste caso, estamos falando dos repositórios remotos, que ficam armazenados no GitHub, permitindo acesso e colaboração de qualquer lugar, diferente dos repositórios locais, que estão apenas no seu computador.
Eles são como a linha do tempo do seu projeto, permitindo que você veja como ele evoluiu ao longo do tempo e que colabore com outras pessoas de forma estruturada. Imagine trabalhar em um projeto com várias pessoas desenvolvedoras:
Com repositórios, você pode acessar a versão mais recente do código sem risco de sobrescrever o trabalho de alguém.
Cada pessoa colaboradora pode contribuir com mudanças que são registradas e organizadas automaticamente.
Você pode usar as funcionalidades do GitHub, como pull requests, issues e revisões de código, para gerenciar e melhorar o projeto de forma eficiente. Não se preocupe, veremos todos esses conceitos daqui a pouco.
Além disso, os repositórios no GitHub podem ser públicos ou privados:
Repositórios públicos permitem que qualquer pessoa veja e, dependendo das configurações, colabore no projeto. Ótimo para projetos open source - que iremos falar mais adiante sobre.
Repositórios privados são visíveis apenas para você e as pessoas que você convidar, ideais para projetos confidenciais ou em estágio inicial.
Em resumo, repositórios existem para trazer organização, rastreabilidade e colaboração ao desenvolvimento de projetos, ajudando você a manter tudo sob controle e melhorar sua produtividade. Você pode discutir e gerenciar o seu trabalho dentro de repositórios.
Agora, vamos fazer a primeira edição no seu novo repositório.
Como, por enquanto, o único arquivo no repositório é o próprio README.md
, vamos começar por ele. Nossa primeira modificação será adicionar a frase: Praticando Git + GitHub
, para deixar claro o propósito deste repositório.
Para começar a editar o arquivo README.md, clique no ícone de lápis no canto superior direito da exibição automática do conteúdo.
Isso lhe levará para uma página de edição do arquivo.
Agora, basta adicionar a frase desejada diretamente no arquivo:
Agora, basta adicionar a frase desejada diretamente no arquivo. Este processo é similar ao que fazemos ao editar um arquivo no nosso computador com um editor de texto. A diferença é que a edição está acontecendo no GitHub, não localmente no seu computador.
Em seguida, clique no botão "Commit Changes".
Depois de fazer a modificação, clique no botão "Commit Changes".
Por trás dos panos, ao clicar nesse botão, o GitHub executa o comando equivalente a git add README.md
, que coloca o arquivo na área de staging, preparando-o para o commit.
Na tela seguinte:
Preencha o campo "Commit message" com: Atualizando o README.md
.
Preencha o campo "Extended Description" com: Adicionando o objetivo do repositório.
Selecione a opção Commit directly to the main branch
.
Por fim, clique novamente em "Commit Changes". Isso irá criar um commit de fato, como se você tivesse rodado o comando git commit -m "Adicionando o objetivo do repositório"
. Além disso, o GitHub também fará automaticamente o push da alteração para a branch principal, já que selecionamos a opção "Commit directly to the main branch".
Agora, a sua modificação foi registrada na branch principal do repositório.
Logo você já perceberá que o arquivo foi atualizado.
E ao voltar à página principal do repositório, também verá que a sua alteração já foi aplicada e está visível lá.
Embora esse processo seja uma forma prática de fazer alterações diretamente pelo GitHub, não é recomendado para o dia a dia, especialmente em projetos maiores ou quando for necessário alterar vários arquivos. O ideal é evitar fazer commits diretamente na branch principal (main). Este fluxo foi usado aqui apenas para fins didáticos.
Em situações reais, as alterações devem ser feitas utilizando branches e pull requests, um processo que veremos mais adiante. Isso ajuda a manter o fluxo de trabalho mais organizado e seguro, especialmente quando se trabalha em equipe.
Após realizar sua primeira alteração no repositório, é hora de explorar o histórico de mudanças. No GitHub, você pode acompanhar o histórico de commits organizados em ordem cronológica, do mais recente ao mais antigo. Esse recurso, semelhante ao comando git log no terminal, é essencial para entender a evolução do projeto, identificar quem contribuiu e analisar o que foi modificado ao longo do tempo.
Você pode acessar o histórico de commits de duas maneiras:
No cabeçalho da lista de arquivos, clique no número de commits (ex: 2 commits) para abrir a página de histórico.
Acesse diretamente através do link:
https://github.com/usuário
/nomeDoRepositório
/commits
Na página de histórico, os commits são listados em ordem cronológica. A interface exibe uma linha do tempo das alterações do repositório.
No topo da página, você encontra opções para filtrar os commits:
Filtra os commits de uma branch específica. Isso é útil para ver o histórico de uma linha de desenvolvimento separadamente.
Equivalente no Git:
Exemplo:
Exibe apenas os commits feitos na branch main
.
Mostra os commits realizados por um autor específico. Isso é útil para revisar alterações feitas por um colaborador.
Equivalente no Git:
Exemplo:
Exibe apenas os commits realizados pelo autor com o e-mail aprendiz.cumbucadev@gmail.com
.
Permite visualizar commits dentro de um intervalo de tempo definido. Esse filtro é ideal para analisar alterações feitas em um período específico.
Equivalente no Git:
Exemplo:
Retorna apenas commits efetuados entre 10 de janeiro de 2025 e 16 de janeiro de 2025.
Esses filtros ajudam a localizar informações específicas no histórico de commits, tornando a navegação e a análise mais eficientes.
Cada commit listado exibe:
Título do Commit: Uma descrição breve da alteração, equivalente à mensagem fornecida no comando git commit -m "mensagem"
.
Autoria e Data: O nome de usuário de quem realizou o commit e o momento exato da alteração.
Hash do Commit: Um identificador único gerado pelo Git para cada commit. Esse hash é essencial para comandos como git checkout
e git revert
.
Expandir Descrição: Caso o commit tenha uma descrição longa, você pode expandi-la clicando no botão de expansão dos três pontinhos: ...
Copiar Hash do Commit: Use o botão de cópia ao lado do hash para copiar o identificador único.
Acessar Página do Commit: Clique no título ou no hash do commit para acessar a página específica daquele commit.
Na página do commit, você verá detalhes sobre as alterações, com a mesma estrutura do comando git diff
no terminal. Nela, você encontrará uma lista dos arquivos que foram modificados, adicionados ou removidos, com as alterações detalhadas linha por linha. Linhas adicionadas aparecem destacadas em verde com um sinal de +
, enquanto as linhas removidas são exibidas em vermelho com um sinal de -
.
Se o commit contém arquivos no formato Markdown, você pode clicar no botão de documento no canto superior direito para visualizar o arquivo já formatado diretamente no GitHub.
Na página de histórico de commits, ao final de cada linha, você encontrará um botão com o ícone < >
. Clicando nele, você será levado a uma visualização do repositório exatamente como ele estava no momento daquele commit. Isso permite que você explore a versão do repositório naquele ponto específico no tempo, facilitando a análise das mudanças realizadas até ali.
Ao clicar no botão, o GitHub ajusta a visualização para refletir o estado do repositório naquele commit. No canto da página, a branch será alterada para o hash do commit, indicando que você está visualizando uma versão específica do projeto.
Perceba que neste ponto, ainda não havia sido aplicada a modificação recém feita no README. Isso ocorre porque estamos no ponto em que apenas o primeiro commit havia sido feito. O segundo ainda não existia nesse momento.
Este mesmo comportamento pode ser obtido no terminal através do comando git checkout <hash-do-commit>
. Neste caso, o exato comando seria git checkout e140d96
.
Essa funcionalidade é fundamental para investigar implementações passadas, identificar problemas em commits anteriores e comparar versões ou alterações no repositório.
A seção "About" é uma área dedicada a fornecer detalhes essenciais sobre um repositório no GitHub. Localizada na barra lateral direita da página principal do repositório, ela ajuda a descrever e categorizar o projeto, tornando-o mais acessível para visitantes e potenciais colaboradores.
A descrição do repositório é um texto curto que explica o propósito e o escopo do projeto. Ele fornece uma visão geral para que visitantes e colaboradores entendam rapidamente do que se trata o repositório.
Caso o projeto tenha um site, a seção "About" permite adicionar um link que pode direcionar os usuários para recursos adicionais, como documentação oficial, uma página institucional ou outro material relevante.
Os tópicos são palavras-chave que ajudam a categorizar o repositório e a torná-lo mais fácil de encontrar. Ao clicar em um tópico, você será direcionado para uma página que lista outros repositórios que utilizam o mesmo tópico. Adicionar tópicos relevantes é fundamental para aumentar a visibilidade e a descoberta do seu projeto.
Links Adicionais
Na seção "About", você também encontrará os seguintes links:
Readme: Um atalho para o arquivo README do repositório. Embora o conteúdo do README seja exibido na página principal, o link facilita o acesso direto ao arquivo bruto ou à sua edição. Isso é útil para colaboradores que precisam consultar ou modificar o conteúdo.
Activity: Exibe a atividade recente do repositório, como commits e issues.
Stars: Representa a popularidade do repositório. Quando um usuário clica em "Star" (estrela), ele demonstra interesse pelo projeto ou deseja acompanhar sua evolução. Quanto mais estrelas um repositório tem, maior é sua visibilidade na comunidade.
Watchers: Mostra quantas pessoas estão "observando" o repositório. Ao observar, os usuários recebem notificações sobre eventos importantes, como novos commits, issues ou pull requests.
Forks: Indica quantas vezes o repositório foi bifurcado, permitindo que outros usuários criem suas próprias versões do projeto.
Para atualizar as informações da seção "About", siga os passos abaixo:
Clique no ícone de engrenagem ao lado da descrição do repositório para abrir o diálogo de edição.
No diálogo de edição, faça as alterações desejadas:
Adicione um site: Por exemplo, adicione https://cumbuca.dev
como o link do site relacionado ao projeto.
Adicione tópicos: Insira palavras-chave que representem o projeto. Para este exemplo, vamos adicionar os tópicos hello-world
, praticando
e markdown
.
Personalize a exibição: No diálogo de edição, você verá caixas de seleção na seção "Include in the home page". Essas opções permitem personalizar o que será exibido na página inicial do repositório. Neste caso, desmarque as opções Releases, Packages e Deployments, pois não são relevantes para o momento.
Clique em "Save Changes" para salvar as alterações.
Após salvar as alterações, a seção "About" refletirá as modificações feitas:
O link para o site da Cumbuca será exibido abaixo da descrição.
Os tópicos serão apresentados como etiquetas clicáveis logo abaixo da descrição, facilitando a categorização do projeto.
As seções Releases e Packages não estarão mais visíveis.
Ao clicar em um dos tópicos, como hello-world
, você será redirecionado para a página dedicada a esse tópico. Essa página lista todos os repositórios que também utilizam o mesmo tópico, permitindo que você descubra projetos semelhantes ou relacionados. A página do tópico apresenta uma breve descrição, seguida por uma lista organizada de repositórios com links diretos para cada um deles. Essa funcionalidade é valiosa para colaborar, aprender ou explorar mais sobre um determinado tema.
A seção "About" é um espaço essencial para tornar seu repositório mais acessível, organizado e fácil de encontrar dentro do GitHub. Mantê-la atualizada com uma boa descrição, tópicos relevantes e links úteis pode aumentar significativamente a visibilidade do seu projeto e incentivar colaborações.
Exemplo:
e140d96
Contas de organização no GitHub são perfis especiais criados para grupos de pessoas que trabalham juntos em mais de um projeto de software. Pense nelas como contas de empresas ou equipes, projetadas para facilitar a colaboração e a gestão dos projetos de desenvolvimento.
Imagine que você tem uma empresa de desenvolvimento de aplicativos de saúde chamada "SaúdeTech". Ana, Marcos e João são pessoas desenvolvedoras talentosas que fazem parte da equipe. Para organizar o trabalho e facilitar a colaboração entre elas, você decide criar uma conta de organização no GitHub chamada "SaúdeTech". Agora, todos os projetos da empresa estão centralizados na conta da organização "SaúdeTech", e não nas contas individuais de Ana, Marcos ou João.
Isso traz várias vantagens. Por exemplo, quando Ana decidir sair da empresa, você pode facilmente remover o acesso dela à conta de organização "SaúdeTech". Isso garante que ela não tenha mais acesso aos projetos da empresa, sem a necessidade de transferir os repositórios para outra pessoa. Da mesma forma, quando uma nova pessoa desenvolvedora, como Carolina, entrar na equipe, você pode adicionar ela à conta de organização "SaúdeTech" para que ela tenha acesso imediato aos projetos relevantes.
A organização pode ter vários repositórios (projetos) sob seu nome, como "AppMonitoramento", "PortalPaciente", "WebsiteEmpresa", etc. É como ter diferentes departamentos ou projetos dentro da mesma empresa. Você pode controlar quem tem acesso a cada repositório. Por exemplo, os desenvolvedores podem ter acesso de escrita (para modificar o código), enquanto os gerentes podem ter acesso de leitura (para revisar o trabalho).
Dentro da organização, você pode criar equipes para diferentes funções, como "Desenvolvedores", "Designers", "Gerentes de Projeto", etc. Cada equipe pode ter permissões específicas, assim como departamentos dentro de uma empresa. Você pode facilmente adicionar novos membros à organização ou remover aqueles que saem da empresa. Assim como em uma empresa, onde diferentes funcionários têm diferentes níveis de acesso, no GitHub você pode definir quem pode ver, modificar ou administrar cada repositório. Isso ajuda a manter a segurança dos projetos, garantindo que apenas pessoas autorizadas possam fazer mudanças críticas.
Os repositórios da organização podem ser públicos (acessíveis a qualquer pessoa na internet) ou privados (somente membros da organização podem ver). Por exemplo, projetos como "AppMonitoramento", que monitora a saúde dos pacientes em tempo real, e "PortalPaciente", um portal onde os pacientes acessam suas informações médicas, podem ser repositórios privados, já que contêm dados sensíveis e não devem ser acessíveis a todos. Já o "WebsiteEmpresa", que é o site oficial da SaúdeTech e contém informações públicas sobre os serviços e produtos oferecidos, pode ser um repositório público.
As contas de organização facilitam a coordenação e a colaboração entre os membros da equipe, centralizando todos os projetos. Elas tornam mais fácil gerenciar permissões e acessos, assim como adicionar ou remover membros da equipe. Além disso, apresentam uma imagem mais profissional para clientes e colaboradores externos, com todos os projetos organizados sob um único perfil.
print do perfil da ? Ou um fake da SaúdeTech?
Parabéns por criar seu primeiro repositório! A aba Code é o coração do seu projeto no GitHub, onde você encontrará todos os arquivos que compõem seu código. Vamos explorar cada parte em detalhes.
Nome do Repositório: É o título do seu projeto, que você escolheu ao criá-lo. É importante que seja claro e conciso, refletindo o conteúdo do seu projeto.
Conta Dona do Repositório: Neste caso, indica o seu nome da conta no GitHub, ou seja, a conta proprietária do projeto.
Branch Principal: Indica a versão principal do seu código. Geralmente é chamada de "main". É aqui que você fará a maior parte do seu trabalho.
Visibilidade: Define quem pode ver e acessar o seu repositório. As opções mais comuns são:
Público: Qualquer pessoa na internet pode ver e clonar o seu repositório.
Privado: Apenas você e as pessoas que você convidar podem ver e acessar o repositório.
Descrição do Repositório: Além do arquivo README, você pode adicionar uma breve descrição do seu repositório diretamente na página principal. Essa descrição aparece logo abaixo do nome do repositório e complementa as informações do README.
A área central da aba Code apresenta uma lista de todos os arquivos que fazem parte do seu repositório. Como, ao criar o repositório, você já o inicializou com um arquivo README, você poderá notar que ele já está na lista de arquivos.
Ao lado de cada arquivo, você verá informações cruciais como:
Nome do Arquivo: O nome exato do arquivo, indicando seu propósito dentro do projeto.
Mensagem do Último Commit: Descrição da última modificação no arquivo.
Data do Último Commit: Quando foi a última alteração realizada no arquivo. Isso é útil para acompanhar o histórico de mudanças e identificar a versão mais recente.
Mas e de onde veio essa mensagem initial commit
?
Ao criar um repositório e optar por inicializá-lo com um arquivo README, o GitHub automaticamente realiza o primeiro commit para incluir esse arquivo no projeto. Esse commit é registrado com uma mensagem padrão definida pelo próprio GitHub: initial commit
- indicando que se trata da primeira alteração no repositório.
Além disso, a autoria do commit é automaticamente atribuída à sua conta do GitHub, já que foi você quem criou o projeto e escolheu adicionar o README durante a configuração inicial.
Acima da lista de arquivos, você encontrará um cabeçalho que resume as informações mais recentes sobre todo o repositório:
Autor da Última Commit: Mostra o nome da conta da pessoa usuária que realizou a última alteração no repositório.
Mensagem do Último Commit: Descrição da última alteração feita em qualquer arquivo do repositório.
Data do Último Commit: Quando a última alteração foi feita no repositório.
Uma funcionalidade super útil do GitHub é a exibição automática do conteúdo do arquivo README.md na página principal do repositório. Isso significa que, ao acessar seu repositório, as pessoas verão imediatamente uma descrição concisa do seu projeto, sem precisar procurar pelo arquivo.
A aba Code é o coração do seu projeto no GitHub. É aqui que você pode gerenciar todos os arquivos, acompanhar o histórico de alterações e destacar informações essenciais sobre o projeto por meio do arquivo README.md. Essa aba centraliza tudo o que você precisa para organizar e evoluir seu repositório.
Agora é sua vez! Explore a aba Code no seu repositório hello-world. Observe as seções destacadas, como a lista de arquivos, o conteúdo do README.md e as informações do cabeçalho. Isso ajudará você a se familiarizar com os elementos principais do seu projeto.
Agora que você já entendeu as principais configurações do GitHub, que tal colocar o conhecimento em prática? Vá até o seu repositório hello-world criado anteriormente e explore as opções disponíveis na aba Settings.
Explore e personalize seu repositório para ficar cada vez mais confortável com as funcionalidades do GitHub.
Essas configurações ajudam a definir quem pode contribuir e de que forma no seu repositório.
Nesta seção, você pode gerenciar quem tem acesso ao repositório e definir as permissões de cada pessoa. Para adicionar ou remover colaboradores, você precisa ter permissão de Admin.
Acesse a aba Settings do seu repositório no GitHub.
Na barra de navegação lateral, clique no segundo item, chamado Collaborators.
Outra opção é você acessar as configurações de colaboração do repositório diretamente utilizando o seguinte formato de URL:
https://github.com/CONTA_GITHUB/SEU_REPOSITORIO/settings/access
Substitua CONTA_GITHUB
pelo nome da sua conta no GitHub e SEU_REPOSITORIO
pelo nome do seu repositório.
Por exemplo:
Vá até a seção de configurações Collaborators do seu repositório.
Clique no botão Add people.
Digite o nome de pessoa usuária ou e-mail de quem deseja adicionar.
Clique em Add <conta da pessoa usuária>
A pessoa colaboradora receberá um convite para aceitar o acesso ao repositório.
Dependendo das configurações do repositório e das suas próprias permissões, pode ou não ser possível definir o nível de acesso ao convidar uma pessoa.
Se a opção aparecer, você poderá escolher um dos níveis de permissão disponíveis (explicados abaixo).
Se a opção não aparecer, significa que o repositório já tem configurações predefinidas ou que sua conta não tem permissão para ajustá-las. Nesse caso, o GitHub atribuirá automaticamente um nível de permissão padrão com base nas configurações do repositório.
Cada colaborador pode ter um nível de permissão diferente, de acordo com o que pode ou não fazer no repositório:
Read → Pode visualizar o código, issues e pull requests, mas não pode modificar nada.
Triage → Pode gerenciar issues e pull requests, ajudando na organização do repositório.
Write → Pode contribuir com código e gerenciar issues e pull requests.
Maintain → Pode gerenciar o repositório (configurações, branches, etc.), mas sem permissões administrativas.
Admin → Tem controle total sobre o repositório, podendo alterá-lo completamente, inclusive excluí-lo.
Em repositórios públicos, qualquer pessoa pode visualizar o código, mas permissões adicionais podem ser necessárias para edição e colaboração.
Em repositórios privados, definir permissões corretamente é essencial para garantir o acesso adequado.
Se você está começando, geralmente terá permissão Read ou Write. Apenas os responsáveis pelo projeto devem ter permissão Admin para evitar mudanças acidentais.
Aqui estão os links que consideramos relevantes na construção deste Capítulo. Disponibilizamos para caso queira ampliar seus estudos de boas fontes :)
Entender como o GitHub e os projetos open source funcionam na prática pode ser um desafio. Como é a organização de um repositório? Quem contribui para ele? Quais elementos tornam um repositório realmente ativo e relevante? A melhor maneira de aprender é explorando um projeto real, e é exatamente isso que vamos fazer!
Para isso, vamos explorar o brutils-python. Ao longo dessa análise, você identificará os principais elementos de um repositório ativo no GitHub, e verá na prática como tudo o que discutimos nas seções anteriores se aplica.
Este é um repositório que vai além do código: ele faz parte do nosso compromisso com a comunidade tech!
Esse projeto é mantido pela Cumbuca Dev e já recebeu diversas contribuições da comunidade. Ele não só facilita o desenvolvimento de software ao lidar com formatos brasileiros — como CPF, CNPJ, CEP e muito mais —, mas também é uma ferramenta prática para ensinar como programar na vida real.
Na Cumbuca Dev, utilizamos esse repositório para mostrar como funciona um projeto open source de verdade, desde a organização do código até o fluxo de contribuição. É um espaço onde pessoas desenvolvedoras aprendem sobre boas práticas, colaboração e versionamento de código na prática.
Além disso, o impacto do brutils-python vai além do ensino:
Facilita o dia a dia de quem desenvolve software no Brasil
É usado por projetos reais e empresas
Ajuda novas pessoas a entrarem no mundo open source
Ao navegar por esse repositório, tente identificar os elementos que discutimos nas seções anteriores.
Conta proprietária do repositório → Quem mantém o projeto? É uma organização ou uma pessoa usuária individual? Qual o nome no GitHub?
Nome do repositório → Como ele é identificado dentro do GitHub?
Visibilidade → O repositório é público ou privado?
Branch principal → Qual é o nome do branch padrão do código-fonte?
Lista de arquivos → Para cada arquivo, observe:
Qual o nome do arquivo?
Quem fez a última alteração?
Quando foi a modificação?
Qual foi a descrição da mudança?
README → Onde ele está localizado? Que informações ele apresenta?
Histórico de commits → Quais foram as últimas mudanças no código? Quem contribuiu recentemente?
Descrição → Qual o propósito da biblioteca? Para que ela serve?
Site do projeto → Há um link para uma página externa? Se sim, qual?
Tópicos → Quais palavras-chave foram associadas ao projeto?
Activity → O que aparece no registro de atividades recentes?
Stars → Quantas pessoas favoritaram o repositório? Quem são elas?
Watchers → Quantas contas acompanham as atualizações do repositório? Quem são?
Forks → Quantas cópias do repositório foram feitas? Quem criou esses forks?
Explore esses elementos e veja como tudo o que discutimos se aplica a um projeto real no GitHub!
A seção General é uma das áreas mais importantes para configurar os aspectos básicos do seu repositório no GitHub. Aqui, você pode ajustar o nome, a estrutura e funcionalidades que afetam o comportamento e a aparência do repositório. Além disso, também é onde você pode realizar ações críticas, como alterar a visibilidade ou até mesmo excluir o repositório.
É importante estar atento às implicações de cada configuração, já que algumas alterações podem afetar diretamente como os colaboradores e usuários interagem com o repositório. Vamos explorar as principais configurações que você encontrará nesta seção.
Permite alterar o nome do repositório. Tenha cuidado ao mudar, pois isso pode afetar links já compartilhados e integrações existentes. O GitHub possui um sistema de redirecionamento que evita a quebra de links, mas é sempre recomendado atualizar documentações e integrações para evitar dependência desse redirecionamento.
Exemplo: Se um repositório chamado meu-site
for renomeado para site-novo
, qualquer pessoa ou sistema que tentava acessá-lo pelo nome antigo será automaticamente redirecionado para o novo nome. No entanto, links em documentações e configurações externas devem ser atualizados manualmente.
Transforma o repositório em um modelo que pode ser usado para gerar novos repositórios com a mesma estrutura de diretórios e arquivos. Isso é útil quando você deseja criar vários projetos semelhantes com uma base inicial padronizada.
Define o nome do branch principal do repositório, que será a base para commits e pull requests. Por padrão, ele se chama main, mas pode ser alterado conforme necessário.
Permite carregar uma imagem personalizada que será exibida quando o repositório for compartilhado em redes sociais. Isso ajuda a destacar o projeto visualmente.
Exemplo:
Se o repositório for um projeto de site, você pode adicionar uma captura de tela da interface.
Se for uma biblioteca, um logo pode ser uma boa opção.
Essa seção permite ativar ou desativar algumas funcionalidades extras do repositório.
Ativa uma área para criar documentações dentro do próprio repositório, facilitando o registro de informações importantes.
Por que usar uma Wiki se já temos a documentação no código?
A Wiki pode ser mais acessível para pessoas que não têm familiaridade com Markdown ou edição de arquivos no repositório.
Pode ser usada para armazenar informações que não precisam estar no código, como guias de contribuição ou explicações detalhadas.
Restrict editing to collaborators only: Se ativado, apenas colaboradores do repositório poderão editar a Wiki. Caso contrário, qualquer pessoa poderá contribuir.
Habilita um sistema de rastreamento de tarefas e bugs. Isso permite que usuários relatem problemas e sugiram melhorias de forma organizada.
Se você encontrar um erro no projeto ou tiver uma sugestão, pode abrir uma Issue para comunicar isso aos mantenedores. As Issues podem ser usadas para discutir novas funcionalidades ou corrigir problemas antes de serem resolvidos. Cada Issue tem um número único e pode ser fechada quando resolvida.
Issue templates: Você pode criar modelos de Issues para guiar os usuários ao reportar um problema ou sugerir uma melhoria.
Adiciona um botão de patrocínio ao repositório. Ele pode direcionar para o GitHub Sponsors ou outros métodos externos para doações financeiras, ajudando a sustentar o projeto.
Cria um espaço para debates dentro do repositório, permitindo que os membros da comunidade façam perguntas e troquem ideias sem a necessidade de abrir issues.
Habilita a funcionalidade de gerenciamento de projetos dentro do repositório. Com isso, é possível criar quadros organizacionais para acompanhar tarefas e progresso do desenvolvimento.
Esta seção contém configurações críticas que devem ser usadas com cuidado.
Altera a visibilidade do repositório entre público e privado.
Permite transferir o repositório para outra pessoa ou organização.
Arquiva o repositório, tornando-o somente leitura.
Exclui permanentemente o repositório. Essa ação não pode ser desfeita.
A aba Settings de um repositório no GitHub contém diversas configurações essenciais para gerenciar o repositório de forma eficiente. Neste guia, abordaremos as seções mais relevantes para o momento: Geral e Colaboradores.
Nosso objetivo é fornecer um panorama claro, sem sobrecarregar com detalhes excessivos, focando nas configurações mais importantes para o gerenciamento e colaboração no repositório.
Compreender essas configurações é fundamental para garantir que você tenha controle total sobre a visibilidade, acessibilidade e a colaboração do seu projeto. As escolhas feitas nessa área podem afetar diretamente a organização do código, a segurança do repositório e a experiência de trabalho em equipe.
Acesse a página principal do seu repositório no GitHub.
Na barra de navegação superior, clique na aba Settings.
Essa aba fica disponível logo após a aba Insights, ao lado de Pull requests e Actions.
Outra opção é você acessar as configurações do repositório diretamente utilizando o seguinte formato de URL:
https://github.com/CONTA_GITHUB/SEU_REPOSITORIO/settings
Substitua CONTA_GITHUB pelo nome da sua conta no GitHub e SEU_REPOSITORIO pelo nome do seu repositório. Por exemplo:
Ao acessar a aba Settings, a primeira seção exibida é General. A seguir, vamos explorá-la em mais detalhes.
Markdown é a linguagem de marcação padrão utilizada pelo GitHub para criar e formatar documentos de texto na plataforma. Ela é leve, fácil de usar e foi projetada para permitir que você escreva e formate documentos com uma sintaxe simples e intuitiva. O Markdown combina a legibilidade de um texto puro com a capacidade de ser convertido para formatos mais sofisticados, como HTML, PDF, .doc, .docx e outros.
Linguagens de marcação, como o Markdown, são formas de organizar e formatar texto utilizando símbolos específicos. Elas permitem criar estilos como negrito, itálico, listas e links, sem a necessidade de editores visuais complexos. Quando um texto escrito em uma linguagem de marcação é processado por um programa compatível, ele é exibido de maneira formatada e visualmente atraente.
Você pode pensar nelas como "regras simples" para transformar texto em algo mais estruturado e estilizado.
Embora as linguagens de marcação e as linguagens de programação compartilhem a ideia de seguir uma sintaxe específica, elas têm propósitos bem diferentes:
Linguagens de Marcação:
Usadas para organizar e formatar conteúdo textual.
Exemplos: Markdown, HTML, XML.
Não possuem lógica, como loops ou condições.
Linguagens de Programação:
Usadas para criar aplicativos, resolver problemas e executar ações.
Exemplos: Python, JavaScript, Ruby.
Incluem lógica, estruturas de controle, e podem interagir com hardware e sistemas.
Ao escrever um texto em Markdown e salvar o arquivo com a extensão .md
, você está criando um documento que é simples de ler e organizar. Quando esse arquivo é enviado para o GitHub (ou outras plataformas compatíveis), ele é automaticamente convertido para um formato formatado, com títulos, listas, links e outros elementos estruturados. Isso permite que o conteúdo seja visualizado de forma clara e bonita, sem a necessidade de programas adicionais.
Exemplo de um texto utilizando a linguagem de marcação Markdown:
Exemplo de como esse texto é apresentado no GitHub:
Markdown é uma ferramenta poderosa para quem deseja criar conteúdo formatado sem complicações, especialmente em ambientes de desenvolvimento.
Já tem um monte de conteúdo em português super detalhado sobre Markdown, então não precisamos reinventar a roda! Dê uma olhada nesses dois artigos para se preparar bem antes de partir para a parte prática.
Agora que você já tem a teoria na bagagem, chegou o momento de colocar a mão na massa! Vamos praticar o que aprendemos até aqui com os seguintes tutoriais:
Assim, você consegue acompanhar tudo com facilidade, mesmo em inglês!
.
Conheça o 🔗 🇧🇷!
.
.
.
.
.
O segundo link é um tutorial em inglês, mas não se preocupe com o idioma – basta usar o tradutor do navegador, como mencionamos anteriormente na seção da página do dia 4.
Antes de começarmos a programar em nossos projetos, é importante aprender como escrever a documentação de um projeto.
Documentação de um projeto refere-se a um conjunto de instruções e informações organizadas que descrevem o objetivo, a estrutura, o funcionamento e a utilização de um projeto. Ela torna o projeto compreensível e acessível para pessoas desenvolvedoras, usuárias finais e outras interessadas, facilitando a colaboração, a manutenção e a evolução do projeto ao longo do tempo.
Em termos práticos, a documentação de um projeto nada mais é do que um conjunto de arquivos de texto que explicam tudo sobre o próprio projeto.
Mas e no mundo real, como são essas documentações? Existem diversos tipos, dependendo do projeto e de quem vai utilizá-lo. Aqui estão alguns exemplos:
Manual do Usuário
Explica como o usuário final pode interagir com o projeto.
Exemplo: Você criou um jogo de campo minado e precisa ensinar os jogadores como jogar, descrevendo as regras e o que cada botão faz.
Guia de Instalação
Ensina como instalar ou configurar o projeto.
Exemplo: Você desenvolveu um aplicativo de música e quer mostrar aos usuários como baixá-lo e instalá-lo no celular ou computador.
Guia para Desenvolvedores
Ajuda outras pessoas a entenderem o código e contribuírem com ele.
Exemplo: Você criou um site e precisa explicar para um colega desenvolvedor como o código funciona, como modificar algo e como publicar as alterações.
Licença de Uso
Define as condições em que o projeto pode ser usado.
Exemplo: Você desenvolveu uma ferramenta que outros programadores podem usar e quer definir se ela é gratuita ou paga, ou como pode ser distribuída.
Registro de Alterações (Changelog)
Lista as mudanças feitas no projeto ao longo do tempo.
Exemplo: Quando você lança uma nova versão do projeto, registra o que foi corrigido, adicionado ou melhorado.
FAQ (Perguntas Frequentes)
Responde dúvidas comuns sobre o projeto.
Exemplo: Para um aplicativo, você pode incluir perguntas como "Como faço para atualizar?" ou "E se o app travar?".
Exemplos de Uso
Mostram como usar o projeto na prática, com explicações claras.
Exemplo: Você criou um programa que ajuda a calcular o preço de produtos com desconto e mostra como utilizá-lo em diferentes cenários: "Se um produto custa R$ 100 e está com 20% de desconto, o resultado será R$ 80."
Porque todo projeto precisa de documentação: Um projeto, por mais avançado que seja, não será útil se ninguém souber como usá-lo. Uma boa documentação é o que conecta o seu trabalho às pessoas que podem se beneficiar dele. ter documentações:
Porque é simples: Comparado a programar em linguagens como Python ou JavaScript, criar documentação (especialmente usando Markdown) é relativamente fácil. Então é um ótimo primeiro passo para interagir com repositórios no GitHub.
Porque é necessária em qualquer linguagem: Não importa a tecnologia utilizada, você sempre precisará documentar seus projetos.
Padrões comuns no GitHub: No GitHub, as documentações geralmente usam a mesma notação (Markdown). Por isso, aprender Markdown facilita a criação de documentação de qualidade e legível.
Um projeto incrível, com um código impecável, perde sua utilidade se ninguém souber como usá-lo ou como contribuir com ele. A documentação é o que transforma o código em algo útil e acessível.
Agora que você já entende a importância da documentação em um projeto, chegou a hora de dar o próximo passo: aprender como escrever documentações diretamente no GitHub de forma clara, organizada e eficiente. Para isso, vamos usar o Markdown, uma ferramenta simples e poderosa que facilita a criação de conteúdos bem estruturados e acessíveis.
Aqui estão os links que consideramos relevantes na construção deste Capítulo. Disponibilizamos para caso queira ampliar seus estudos de boas fontes :)
Tutorial em inglês
Avançado
Agora que você já aprendeu sobre Markdown, é hora de usar esse conhecimento para criar a sua página de apresentação no GitHub! Essa é a primeira coisa que as pessoas veem quando visitam o seu perfil – sua vitrine no mundo do desenvolvimento.
Nela, você pode contar um pouco mais sobre quem você é, seus interesses, e destacar os projetos incríveis que está trabalhando.
Para te ajudar a começar, o próprio GitHub oferece um tutorial super completo. Ele vai te guiar pelos primeiros passos e mostrar como criar uma página que seja a sua cara!
Sua página de apresentação já está informativa e conta um pouco sobre você, mas que tal deixá-la ainda mais legal, estilosa e completa? O desafio agora é atualizar essa página para torná-la ainda mais interessante e personalizada. Para te ajudar, separamos alguns exemplos incríveis de páginas que podem servir de inspiração.
Os seguintes tutoriais vão te ajudar ainda mais nessa missão, com várias dicas e sugestões bem importantes:
Agora que você aprendeu o básico de Markdown e criou sua página de apresentação no GitHub, é hora de personalizá-la ainda mais! Com os tutoriais e exemplos que compartilhamos, você tem tudo para tornar seu perfil único e atraente. Mostre suas habilidades, seus projetos e, claro, sua criatividade! Boa sorte e divirta-se!
Após o tutorial, você deve ter um perfil semelhante a :
Lista de exemplos de READMEs de perfil no GitHub:
- por Letícia Silva, a maravilhosa @dii_lua
- por Camila Fernanda Alves