26 de março
Código fonte
81 visualizações

Git para rotinas de desenvolvedor

Nos primeiros passos é comum lidar apenas com repositórios locais e é comum encontrar tutoriais que explicam na prática os principais comandos como no curso Git e contribuições para projetos Open Source do Bruno Orlandi na plataforma Udemy.

No processo de trabalho em branch único, não existe preocupação com o trabalho de múltiplos desenvolvedores e o fluxo de commits é pequeno o bastante para ser controlado com um branch central, o branch master. O desenvolvedor não precisa se preocupar em isolar seus trabalhos em branches paralelos nesse caso:

processo de trabalho single branch
Processo de trabalho em branch único

No processo de trabalho em múltiplos branches, funcionalidades e correções são isoladas em branches. Existe a preocupação com o trabalho de múltiplos desenvolvedores e o fluxo de commits é grande o bastante para precisar ser separado com vários branches separados:

processo de trabalho em múltiplos branches
Processo de trabalho em diversos branches

Inicialmente, usamos o Git apenas como uma ferramenta simples pra evitar escrever sufixos v1, v2, v3, novo, novo mais novo, recente nos arquivos… Mas vamos descobrindo durante o caminho o verdadeiro poder do Git, que é escrever histórias estruturadas em ramos destinados a compôr o ramo master, além dos comandos que permitem transcender espaço-tempo nas histórias contadas na nossa git-tree.

Um certo dia entendemos por que o Git é a ferramenta mais popular do mundo ao se tratar de trabalho em equipe. Passamos a trabalhar em repositórios privados remotos de plataformas como GitLab e Bitbucket ou mesmo GitHub. Entendemos como é importante ter clareza nos commits e consistência. Aprendemos que conflitos são eventos necessários e que o trabalho de desenvolvimento também está relacionado à resolução constante desses conflitos.

Principais comandos git utilizados na rotina:

Clone Baixamos um repositório e passamos a visualizar a história por trás de sua construção. O poder de contribuir para a história depende de autorização do administrador desse repositório.
Add Realizamos algumas mudanças e gostaríamos de atualizar a história. Nesse momento o comando add deve ser utilizado. Especificamos nomes dos arquivos que farão parte do commit ou todos através de um ponto (.).
Commit Momento onde etiquetamos a mudança realizada sobre arquivos específicos modificados ou sobre todos (.). Atribuimos uma descrição clara que identifique a mudança feita. Pode ser necessário corrigir um commit anterior, daí se usa a opção --amend
Reflog Descrição mais compacta do log, exibe o índice da história
Checkout Utilizado para navegar entre os ramos. Pode ainda ser usado junto à opção -b para criar um novo ramo.
Usado frequentemente para “viajar no tempo” entre commits mais antigos, para encontrar o ponto de introdução de um bug, por exemplo.
Reset É comum precisar apagar os últimos commits. Para essa finalidade, usamos o reset.
Merge É comum solicitar um merge do ramo master para atualizar um ramo secundário.
Rebase Versão mais inteligente do merge. Permite adicionar os commits do branch atual em cima da árvore. Permite também editar toda a árvore de commits antes de aplicar mudanças.
Branch Ramo = branch. Geralmente criamos novos ramos a partir de ramos mais atualizados.
Fetch Baixamos histórias atualizadas do repositório remoto/origin, mas não aplicamos diretamente como o merge faz.
Pull Junção de fetch + merge.
Push Enviamos as alterações para um ramo desejado, após o commit.
Remote -v Lista todos os repositórios remotos ativos
Remote add origin Adicionamos um repositório remoto chamado “origin”
Remote rm origin Removemos um repositório remoto chamado “origin”

Comentários:

Complementar, contribuir, comentar!

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *


Um pouco sobre o autor

Matteus Barbosa - Desenvolvedor Web
                               
Trabalho como Desenvolvedor web desde 2013 e atualmente faço parte do quadro da Symplicity. Também atuo em projetos como profissional autônomo. Para saber da minha experiência, acesse meu Currículo, meu Portfólio, a relação de Referências de Clientes ou ainda a Lista de Serviços. As propostas de serviço são iniciadas com conversas informais, seguidas da coleta de requisitos, elaboração do cronograma e por fim a proposta de orçamento. Todas as etapas são acompanhados de perto via ferramenta online e videoconferências. Os pagamentos são registrados com entrega de notas fiscais. Presto serviços de projeto, desenvolvimento e manutenção de sistemas baseados nos mais diversos frameworks.