Explicando Git e Gihub
- #GitHub
- #Git
Git
O que é versionamento de código?
Versionamento de código é a prática de gerenciar e registrar mudanças no código-fonte de um software ao longo do tempo. Essa prática permite que desenvolvedores acompanhem o histórico de modificações, revertam para versões anteriores se necessário, colaborem de maneira eficiente com outros desenvolvedores e mantenham um registro detalhado de quem fez o quê e quando.
O versionamento é geralmente implementado através de sistemas de controle de versão (VCS, na sigla em inglês), como o Git. Esses sistemas armazenam versões do código em um repositório, permitindo que múltiplos desenvolvedores trabalhem simultaneamente sem conflitos, além de facilitar a fusão de diferentes versões do código.
Principais conceitos no versionamento de código:
- Commit: Um ponto de salvamento que registra as mudanças feitas no código.
- Branch: Uma ramificação onde você pode desenvolver novas funcionalidades sem afetar a linha principal do desenvolvimento (geralmente chamada de "main" ou "master").
- Merge: O processo de integrar mudanças de diferentes branches.
- Tag: Um marcador usado para identificar versões específicas, como lançamentos de software.
Essa prática é essencial para o desenvolvimento de software moderno, especialmente em equipes.
O que é Git ?
Git é um sistema de controle de versão distribuído, amplamente utilizado para rastrear alterações em arquivos e coordenar o trabalho de vários desenvolvedores em projetos de software. Ele foi criado por Linus Torvalds em 2005, originalmente para ajudar no desenvolvimento do kernel do Linux.
Principais características do Git:
- Distribuído: Cada desenvolvedor tem uma cópia completa do histórico do projeto em seu repositório local, o que permite trabalhar offline e reduz a dependência de um servidor central.
- Velocidade e Eficiência: Git é projetado para ser rápido, mesmo em projetos grandes, com operações como commits e branching sendo rápidas e eficientes.
- Branching e Merging: Git facilita a criação de branches para desenvolver novas funcionalidades ou corrigir bugs sem afetar o código principal. As operações de merge são flexíveis e suportam a integração de diferentes versões do código.
- Commit e Histórico: Cada commit (ou salvamento de alterações) é identificado por um hash único, o que garante integridade e rastreabilidade. O histórico do projeto é mantido de forma que seja fácil visualizar e reverter mudanças.
- Colaboração: Git facilita a colaboração em equipe, permitindo que múltiplos desenvolvedores trabalhem em paralelo sem conflitos.
Fluxo de Trabalho Básico com Git:
- Inicialização: Crie um novo repositório Git usando git init ou clone um repositório existente com git clone.
- Fazendo Alterações: Modifique os arquivos no diretório de trabalho e adicione essas mudanças à área de staging com git add.
- Commit: Registre as mudanças no repositório com git commit, incluindo uma mensagem descritiva.
- Branching: Crie um branch para desenvolver uma nova funcionalidade com git branch e mude para ele usando git checkout ou git switch.
- Merge: Una as alterações de um branch ao branch principal com git merge.
- Push e Pull: Envie suas alterações para um repositório remoto com git push e integre as mudanças de outros desenvolvedores com git pull.
O Git é essencial para o desenvolvimento colaborativo e tem se tornado o padrão de fato em muitos projetos de software ao redor do mundo.
O que é GitHub ?
GitHub é uma plataforma de hospedagem de código-fonte baseada na web que usa o sistema de controle de versão Git. Ela permite que desenvolvedores e equipes colaborem em projetos de software, compartilhem código e gerenciem o desenvolvimento de maneira centralizada e organizada. GitHub oferece uma interface amigável para interagir com repositórios Git, além de uma variedade de recursos que facilitam a colaboração e a gestão de projetos.
Principais Recursos do GitHub:
- Repositórios: No GitHub, os repositórios são onde o código-fonte de um projeto é armazenado. Eles podem ser públicos (acessíveis a qualquer pessoa) ou privados (restritos a membros autorizados).
- Forks: Um fork é uma cópia de um repositório que permite que você faça mudanças no código de outra pessoa sem afetar o repositório original. Depois, você pode propor as suas mudanças através de um Pull Request.
- Pull Requests: Pull requests são uma maneira de sugerir alterações em um repositório. Eles permitem que os mantenedores do projeto revisem e discutam as mudanças antes de integrá-las ao código principal.
- Issues: Issues são ferramentas de rastreamento de bugs, solicitações de novas funcionalidades e discussões gerais relacionadas ao projeto.
- Actions: GitHub Actions permite a automação de fluxos de trabalho, como integração contínua e entrega contínua (CI/CD), diretamente a partir do repositório
- Wikis e Documentação: GitHub permite a criação de wikis para documentar projetos, o que é útil para fornecer guias de instalação, tutoriais e informações gerais sobre o projeto.
- GitHub Pages: Uma funcionalidade que permite hospedar sites estáticos diretamente a partir de um repositório GitHub, geralmente usado para documentação ou páginas de portfólio.
- Colaboração e Controle de Acesso: GitHub permite que equipes trabalhem juntas em projetos, com controles de acesso para gerenciar quem pode ver e modificar o código.
GitHub para a Comunidade de Desenvolvedores:
Além de suas funcionalidades técnicas, o GitHub também funciona como uma rede social para desenvolvedores. Ele facilita a descoberta de projetos de código aberto, contribuições para projetos de terceiros e o networking profissional. As contribuições para projetos no GitHub são frequentemente usadas como portfólio por desenvolvedores em suas carreiras.
Referências on-line
Em: <https://www.w3schools.com/git/default.asp?remote=github> Acessado em 8 ago. 2024
Em: <https://git-scm.com/book/en/v2> Acessado em 8 ago. 2024