quinta, 05 de agosto de 2021
Foto de Matteus Barbosa | Desenvolvedor Web

Git para rotinas de desenvolvedor

git

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, independente da linguagem de programação utilizada. 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”
  • Página no LinkedIn
  • Página no GitHub
  • Perfil Stack Overflow
EnglishPortuguês