Git, GitHub e GitLab: O que são, suas funcionalidades e curiosidades
O que você precisa saber a respeito das principais plataformas de integração de código do mercado atual.
ARTIGOS LINUX
Prof. Rodrigo Santos
8/20/20243 min read
Git, GitHub e GitLab:
Git
O que é: Git é um sistema de controle de versão distribuído, criado para gerenciar o desenvolvimento de projetos que podem envolver muitos arquivos e desenvolvedores. Ele permite acompanhar as mudanças no código-fonte ao longo do tempo, facilitando a colaboração entre desenvolvedores.
Para que serve: Git é usado principalmente para rastrear mudanças em arquivos de código-fonte, permitindo que múltiplos desenvolvedores trabalhem simultaneamente no mesmo projeto sem conflitos. Ele oferece ferramentas para fusão de código, reversão de alterações e ramificação de desenvolvimento, o que facilita a gestão de versões e a implementação de novas funcionalidades.
Controle de versão: Mantém um histórico detalhado de todas as alterações feitas no código.
Branches: Permite a criação de ramificações para desenvolver novas funcionalidades ou corrigir bugs sem afetar o código principal.
Merge: Combina diferentes branches, integrando mudanças de forma eficiente.
Curiosidades:
Git foi criado por Linus Torvalds, o mesmo criador do Linux, em 2005. Ele desenvolveu o Git após uma disputa de licenciamento com o BitKeeper, um sistema de controle de versão anterior.
O nome "Git" é um trocadilho, já que em inglês britânico, "git" é uma gíria para "pessoa desagradável". Torvalds escolheu esse nome humorístico porque ele mesmo se descreve como uma pessoa difícil.
Criador: Linus Torvalds
GitHub
O que é: GitHub é uma plataforma de hospedagem de repositórios Git na nuvem, oferecem funcionalidades adicionais como gerenciamento de projetos, revisão de código, e integração contínua. Ele se tornou uma rede social para desenvolvedores, onde se pode compartilhar e colaborar em projetos de código aberto.
Para que serve: GitHub é usado para armazenar repositórios Git, facilitar a colaboração entre desenvolvedores, revisar e comentar código, e automatizar processos de desenvolvimento através de integrações com outras ferramentas. Ele também é amplamente utilizado como portfólio por desenvolvedores para mostrar seu trabalho.
Curiosidades:
GitHub foi lançado em 2008 por Tom Preston-Werner, Chris Wanstrath, e PJ Hyett.
Em 2018, a Microsoft adquiriu o GitHub por 7,5 bilhões de dólares, o que gerou diversas reações na comunidade de desenvolvedores.
Criadores: Tom Preston-Werner, Chris Wanstrath, PJ Hyett
GitLab
O que é: GitLab é uma plataforma de DevOps que fornece um conjunto completo de ferramentas para desenvolvimento, integração contínua, entrega contínua, segurança e monitoramento de software. Assim como o GitHub, ele também oferece hospedagem de repositórios Git, mas com um foco maior em todo o ciclo de vida do desenvolvimento de software.
Para que serve: GitLab é utilizado para gerenciar e automatizar todo o ciclo de vida de desenvolvimento de software, desde o planejamento e codificação até a implantação e monitoramento. Ele oferece funcionalidades robustas para CI/CD (Integração e Entrega Contínuas), gerenciamento de segurança e controle de qualidade.
Repositórios: Armazena projetos de código-fonte.
Pull Requests: Facilita a revisão e integração de mudanças propostas por colaboradores.
Issues: Gerencia tarefas, bugs e novas funcionalidades.
GitHub Actions: Automatiza fluxos de trabalho de CI/CD (Integração e Entrega Contínua).
CI/CD Integrado: Ferramentas nativas para integração e entrega contínua.
DevOps: Suporte completo ao ciclo de vida do desenvolvimento, desde o planejamento até a monitorização.
Auto DevOps: Automatiza a configuração de pipelines de CI/CD.
Curiosidades:
GitLab foi criado em 2011 por Dmitriy Zaporozhets e Valery Sizov.
A plataforma é conhecida por seu modelo de desenvolvimento "open core", onde a base do código é aberta, mas algumas funcionalidades avançadas estão disponíveis apenas em versões pagas.
Criadores: Dmitriy Zaporozhets, Valery Sizov
O que é fluxos de trabalho de CI/CD?
Os fluxos de trabalho de CI/CD (Integração Contínua/Entrega Contínua) são práticas de desenvolvimento de software que visam automatizar e monitorar continuamente o ciclo de vida das aplicações, desde a integração e testes até a entrega e implantação
Integração Contínua (CI)
A Integração Contínua é a prática de integrar frequentemente mudanças de código em um repositório compartilhado. Cada integração é verificada por meio de testes automatizados para detectar erros rapidamente. Isso ajuda a garantir que o código integrado seja sempre funcional e estável.
Entrega Contínua (CD)
A Entrega Contínua vai um passo além, automatizando a entrega de mudanças de código para ambientes de produção. Isso significa que o código que passou pelos testes automatizados pode ser implantado em produção a qualquer momento, com pouca ou nenhuma intervenção manual.
Benefícios dos Fluxos de Trabalho de CI/CD
Automação: Reduz o trabalho manual e minimiza erros humanos.
Feedback Rápido: Identifica e corrige problemas rapidamente.
Entrega Rápida: Acelera o lançamento de novas funcionalidades e correções.
Colaboração: Facilita a colaboração entre desenvolvedores, testadores e operações.
Ferramentas Comuns
GitHub Actions: Automatiza fluxos de trabalho diretamente no GitHub.
GitLab CI/CD: Oferece pipelines integrados para CI/CD.
Jenkins: Uma ferramenta de automação open-source amplamente utilizada.
Esses fluxos de trabalho são essenciais para manter a qualidade e a eficiência no desenvolvimento de software moderno.
Conclusão
Git, GitHub e GitLab são ferramentas essenciais no desenvolvimento moderno de software. Git fornece a base para controle de versão, enquanto GitHub e GitLab estendem suas funcionalidades com hospedagem, colaboração e automação de processos. Cada uma dessas ferramentas tem suas particularidades e pontos fortes, tornando-as adequadas para diferentes necessidades e preferências de desenvolvimento.