GIT na prática: 6 passos para dominar o versionamento de cógido e turbinar sua carreira
- #GitHub
- #Git
Dominar o Git passou a ser condições essencial para o sucesso profissional de qualquer pessoa interessada na área de desenvolvimento de sistemas.
Nesse artigo, vamos conhecer em seis passos para dominar o controle de versão com Git e GitHub e como esse domínio pode turbinar sua carreira.
Passo 1: Descubra por que usar controle de versão e git
Desde as primeiras linhas de código até a construção de grandes sistemas, os desenvolvedores têm de lidar com o problema de garantir uma evolução eficiente e saudável dos códigos e arquivos e criar programas e sistemas de maneira compartilhada ou que possam ser compartilhadas com outras pessoas, mesmo que criados sozinhos.
A sistemática intuitiva de realizar o controle da atualidade do código pelo nome do arquivo, seja incluindo a data da última atualização ou uma ordem crescente de versão - v.1, v.2, v3 -, pode até servir para sistemas muito simples e que tenham pouquíssimas versões, alterações ou atualizações, mas emperram a possibilidade de criação compartilhada deste código e de escalamento dos sistemas.
Essa é uma preocupação que remonta aos primórdios da computação, que era contornada com controles manuais ou com ferramentas rudimentares nos primeiros anos. Com o aumento da complexidade dos sistemas e do trabalho colaborativo, tornou-se essencial o uso de sistemas que rastreassem mudanças, permitissem a coordenação entre desenvolvedores, bem como a recuperação de versões anteriores de maneira rápida e segura.
Essa busca passou por soluções como o Source Code Control System (SCCS), desenvolvido pela Bell Labs na década de 1970; o Revision Control System (RCS); o Concurrent Versions System (CVS); e o Subversion (SVN), no início dos anos 2000. No entanto, todos esses sistemas eram centralizados, o que criava gargalos e riscos de perda de dados.
Em 2005 tivemos uma revolução no controle de versão instaurada pelo criador do Linux, Linus Torvalds, que, insatisfeito com as limitações do BitKeeper utilizado no desenvolvimento no kernel do Linux, lançou o Git.
O Git introduziu o conceito de controle de versão distribuído, no qual cada desenvolvedor detinha uma cópia completa do repositório. Isso trouxe mais segurança, eficiência, flexibilidade e velocidade ao desenvolvimento de software. Com isso, ele rapidamente se tornou o padrão adotado pelos desenvolvedores.
Entre suas principais características estão:
- controle distribuído - cada usuário possui um repositório completo;
- velocidade e eficiência nas operações locais;
- segurança criptográfica - cada alteração é identificada por um hash SHA-1;
- suporte robusto a ramificações (branches) e fusões (merges), facilitando o trabalho paralelo.
Mas o GIT não restringiu sua contribuição apenas como ferramenta de controle de versão, passou a ser o coração da colaboração moderna em desenvolvimento de software. Ele permite o rastreamento de mudanças, trabalho em equipe assíncrona e sem conflitos e a recuperação de versões anteriores do código com facilidade e segurança.
Além disso, pasou a ser uma grande vitrine das produções dos desenvolvedores, servindo como portfólio de sistemas e programas criados e uma rede de contatos e fonte de aprendizagem, sendo, portanto, essencial dominar o GIT para se destacar no mercado de trabalho atual.
Passo 2: Instale e inicialize o GIT
Para iniciantes o GIT pode parecer intimidante no início, mas com alguns comandos básicos e a compreensão de suas estruturas e conceitos, rapidamente qualquer pessoa pode dominar e aproveitar suas funcionalidades.
Inicialmente, como qualquer sistema, é necessário realizar a instalação do Git. Para tanto, visite o site oficial do GIT em https://git-scm.com/ onde é possível ter em detalhes, além de toda a documentação, os passos para a instalação conforme o sistema operacional utilizado.
Instalado o GIT, o passo seguinte é registrar no sistema o nome de usuário e o e-mail para que as contribuições e alterações possam ser rastreadas. Para tanto, acesse o terminal e informe os seguintes códigos:
git config --global user.name "Seu Nome"
git config --global user.email "seuemail@exemplo.com"
Agora, é possível utilizar o GIT para controlar as alterações realizadas. Para tanto, navegue até o diretório raiz do projeto e inicialize um repositório do GIT com o comando:
git init
Assim, o GIT irá criar um repositório vazio no diretório e passará a controlar qualquer alteração realizada em seus arquivos e subpastas.
Passo 3: Domine o controle de versão
Após criar o repositório no GIT, os desenvolvedores iniciam o trabalho de criação, alteração, atualização e exclusão de códigos, arquivos, diretórios e tudo será rastreado. Aqui entra um conceito fundamental do controle de versão: o commit.
O commit funciona como um retrato atual do projeto, registrando os arquivos modificados, adicionados ou removidos, juntamente com uma mensagem obrigatória que descreve essa imagem do momento do projeto. Ou seja, o GIT vai rastreando as mudanças realizadas, mas é somente quando é feito o commit que temos uma nova versão do sistema. Por isso, é essencial que sejam feitos com uma frequência regular.
Inicialmente, as alterações realizadas no projeto devem ser incluídas no commit que será enviado. Para tanto, basta digitar o comando:
git add .
Esse comando com o ponto ao final, indica ao GIT para adicionar todos os arquivos do diretório atual ao repositório. Se preferir adicionar arquivos específicos, substitua o ponto pelo nome do arquivo a ser adicionado.
Para salvar as mudanças adicionadas ao repositório, deve-se realizar o commit. Assim, inclui-se o comando para a efetivação da atualização dos arquivos e diretórios do repositório, seguido de uma mensagem que resume claramente as alterações realizadas, facilitando a recuperação posterior das versões do código e a compreensão de seu histórico.
git commit -m "Mensagem explicativa da mudança realizada"
O commit registra as mudanças realizadas, deixando a nova versão disponível para os demais usuários, e é composto por algumas informações que podem ser resgatadas posteriormente para a compreensão das alterações realizadas ao longo do projeto ou para recuperá-las em um momento posterior:
- hash único (identificador) para referência;
- informações sobre o autor, data e hora da mudança;
- descrição do estado dos arquivos e do histórico de commits anteriores (ancestralidade); e
- a mensagem.
Como o princípio revolucionário do GIT é o controle descentralizado e a possibilidade de compartilhamento de códigos, um conceito importante foi adicionado com o objetivo de facilitar a criação colaborativa e segura do código: branch.
No Git, uma branch é como se fosse criada uma linha de desenvolvimento separada da linha principal (main ou master). Ela permite criar um desvio temporário do código para que sejam inseridas novas funcionalidades, correções ou testes sem afetar ou bagunçar o código principal do projeto. Ao final, é possível voltar ao código principal e selecionar as mudanças a serem implementadas.
Para criar uma nova branch do código, utiliza-se o código:
git branch nome-da-branch
Com isso, a linha principal do código continuará inalterada e as alterações realizadas serão controladas pela nova linha criada.
O comando git branch lista todas as linhas criadas para o repositório.
Para acessar uma linha específica, utiliza-se o comando:
git switch nome-da-branch
Para sair de uma linha e voltar para a branch principal, utiliza-se o comando:
git checkout main
Para excluir uma branch criada, sem incorporar o código, utiliza-se o comando:
git branch -d nome-da-branch
Ao final, quando terminadas as alterações, os códigos criados podem ser unificados ao código à branch principal, utilizando-se o código:
git checkout main
git merge nome-da-branch
Com a criação de branchs, os desenvolvedores podem trabalhar em paralelo no código, sem alterar sua base principal, incorporando suas alterações somente após criá-las e testá-las exaustivamente.
Passo 4: Leve o controle de versão para as nuvens com GitHub
Apesar dos avanços introduzidos pelo GIT, toda sua flexibilidade e capacidade de compartilhamento são feitos localmente.
Em 2008 Tom Preston-Werner, Chris Wanstrath, PJ Hyett e Scott Chacon criariam o GitHut. A plataforma integrou o Git com uma interface web amigável, facilitando colaboração, revisão de código, controle de modificações e automação de fluxos de desenvolvimento, que passou a ser feito na internet e não mais exclusivamente em máquinas locais.
Para disponibilizar o repositório do GIT no GitHub utiliza-se o comando:
git remote add origin https://github.com/”usuario”/”repositorio”.git
git push -u origin main
Ao acessar ou criar o repositório pela internet, é possível incluir o arquivo README.md, que é a primeira impressão do projeto. A extensão .md vem de Markdown, uma linguagem de marcação usada para formatar o texto do README como negrito, listas, links etc.
Ele tem como objetivo informar, orientar e contextualizar qualquer pessoa que acesse o repositório sobre: o que é o projeto, por que existe e para quem serve; mostrar como instalar e usar; indicar pré-requisitos e dependências; explicar como contribuir (caso seja um projeto colaborativo); listar links para documentações, sites ou outras referências úteis; informações de autoria, licenças, créditos e contatos; FAQ para usuários.
O arquivo ".gitignore" é utilizado para que o GIT, ao realizar a sincronia com o GitHub, ignore arquivos desnecessários, como bancos de dados de teste.
Para além de um sistema de controle de código, o GitHub transformou-se em uma rede social para programadores, pois permitiu que as pessoas se conectassem em busca de soluções criadas por outras pessoas, para conhecer o trabalho dos outros ou para criar soluções em conjunto.
Inclusive, o GitHub se transformou num grande portal de compartilhamento de códigos abertos, permitindo o acesso democrático e gratuito a soluções que impactaram nos anos recentes a área de Tecnologia da Informação e Comunicação.
Passo 5: Adote boas práticas no controle de versão
Como premissa básica, o Git busca automatizar e operacionalizar funções para retirar o usuário de funções meio e focar sua atenção e habilidades para as atividades principais de busca e desenvolvimento de soluções.
Mas para aproveitar ao máximo esses recursos e possibilidades, algumas boas práticas podem ser observadas pelos desenvolvedores:
- Mantenha seu repositório organizado e limpo. Estruture-o com pastas para código, documentação, recursos e testes. Veja um exemplo:
- Use mensagens de commit claras e descritivas, como:
git commit -m "Corrigido erro na funcionalidade X"
- Realize commits frequentes, o que ajuda a manter um histórico claro e facilita a colaboração. Commits grandes incluirão várias mudanças, que podem nem ter relação uma com a outra dificultando o controle e a recuperação de versões anteriores.
- Atualize constantemente seu README para garantir que novos colaboradores entendam o propósito e uso do projeto e inclua imagens de amostra, mostrando a usabilidade e o design do seu trabalho.
- Crie branchs para cada funcionalidade ou correção de bug, assim, você tem total liberdade para modificar e ajustar o código, sem comprometer o andamento do projeto principal pelos demais colaboradores. Se tudo der certo, basta mesclar o projeto com suas colaborações. Caso não goste, poderá excluí-lo. Nomeie-as de maneira a deixar claro qual sua finalidade.
- A prática de incluir comentários explicativos ao longo do código ajuda outras pessoas a entenderem sua lógica e contribui para um ambiente de colaboração mais eficiente.
Use o GitHub como um Hub de suas competências
Agora que já sabe como utilizar o GIT e o GITHUB para potencializar o trabalho de programação, já deu para perceber que atualmente ele se tornou uma grande vitrine na área de quem trabalha com tecnologia.
Mais que uma competência básica, sem a qual um bom programador dificilmente sobreviveria no mercado de trabalho, o GitHub tem sido usado para demonstrar a esse mercado que além de um bom controlador de código, o programador é um grande criador de soluções e conteúdos.
Por isso, crie repositórios bem organizados, com códigos relevantes que demonstrem sua flexibilidade e qualidades de criação de soluções e que deixem claro ao público seus interesses e competências.
Transforme seu GitHub em um verdadeiro portfólio de carreira, incluindo: projetos pessoais, demonstrando suas habilidades; contribuições open-source, que destacam sua colaboração com a comunidade; projetos inovadores, que demonstrem suas áreas de interesse e aprimoramento profissional.
Além disso, busque conhecer o trabalho de outras pessoas disponíveis na comunidade do GitHub, que são uma grande fonte de desenvolvimento de competências, em especial repositórios bem organizados que trazem uma descrição clara de seu conteúdo e orientações de como utilizá-lo.
Uma forma prática de fazer isso é utilizando o recurso de fork, que permite criar uma cópia exata do repositório original em sua própria conta GitHub. Com um fork, você pode estudar o código, testar alterações, aplicar melhorias e até propor contribuições ao projeto original por meio de um pull request. Isso estimula a aprendizagem ativa e mostra seu envolvimento com a comunidade.
Para criar uma cópia do repositório no seu GitHub, clique em Fork e depois em Create a new fork. Depois, basta acessar o repositório criado e realizar os estudos e alterações. Ao final, poderá devolver ao criador suas contribuições para que ele possa analisar sua inclusão na ramificação principal.
Agora que você domina o versionamento de código com GIT e GitHub, não perca tempo e turbine sua carreira rumo ao sucesso!!!