Compartilhe:
Início > Controle de versão com Git

Controle de versão com Git

Este treina­mento visa capac­i­tar o par­tic­i­pante a desenvolver e gerenciar projetos de software utilizando o Git como ferramenta de controle de versão.

Durante o treinamento, o participante irá estudar os seguintes tópicos:

  • O que é um sistema de controle de versão, tipos de sistemas de controle de versão, vantagens de um sistema de controle de versão distribuído, histórico e principais características do Git, instalando e configurando o Git, introdução aos comandos básicos de gerenciamento de um repositório Git, interfaces gráficas para o Git.
  • Comparando sistemas de controle de versão baseados em deltas e snapshots, os três tipos de arquivos no Git (tracked, untracked, ignored), os estados de um arquivo rastreado (commited, modified, staged), as seções de um repositório Git (diretório de trabalho, staging/index e repositório), inicializando um repositório Git, exibindo o status do repositório, adicionando arquivos ao repositório, comitando arquivos, modificando arquivos comitados, exibindo a diferença entre os arquivos do diretório de trabalho, index e repositório, removendo e renomeando arquivos, criando apelidos de comandos.
  • Conceitos de um branch, criando, listando e removendo branches, o que é o HEAD, mudando de branch, fazendo commits em um branch separado, exibindo uma representação gráfica do histórico de commits, fazendo merge de branches, merges do tipo fast-forward, gerando commits de merge, resolvendo conflitos de merge, fazendo rebase, comparando merge e rebase, exibindo o histórico de alterações no HEAD, conceitos de uma tag, os dois tipos de tags (lightweight e annotated), criando e listando tags, comparando branches e tags.
  • Pesquisando e filtrando o histórico de um repositório Git, as diversas formas de referenciar um commit no repositório, definindo ranges de commits, filtrando o histórico de commits com o comando log, comparando os arquivos do repositório, fazendo buscas de strings e expressões regulares no repositório, fazendo buscas com o recurso de pickaxe, técnicas para identificar problemas no código-fonte com o Git.
  • Reescrevendo o histórico de commits do repositório, juntando e dividindo commits, reordenando e removendo commits, refazendo o último commit, utilizando o recurso de rebase interativo para reescrever o histórico de commits, movendo um branch e o HEAD para qualquer commit do repositório, recuperando o conteúdo do index e do diretório de trabalho, recuperando uma versão mais antiga de um arquivo do repositório, reintroduzindo commits no repositório, revertendo commits, salvando e limpando o diretório de trabalho.
  • Introdução ao funcionamento interno do Git, o conteúdo e a organização do diretório .git/, os tipos de objetos do repositório (blob, tree, commit, tag), como os objetos são armazenados no repositório, o hash de um objeto, adicionando manualmente um objeto do tipo blob ao repositório, listando informações de um objeto do repositório, adicionando objetos ao index e criando um objeto do tipo tree, criando um objeto do tipo commit, configurando referências (branches) aos objetos do tipo commit e movendo o HEAD, criando objetos do tipo tag, como o Git comprime os objetos no repositório, o funcionamento do garbage collection.
  • Gerenciando e trabalhando com repositórios remotos, clonando um repositório remoto em uma máquina local, protocolos suportados pelo Git, listando, adicionando e removendo repositórios remotos, rastreando branches remotos, enviando alterações para um repositório remoto (push), recebendo alterações de um repositório remoto (fetch/pull), fazendo o merge ou rebase das alterações feitas no repositório local com as alterações do repositório remoto, criando e removendo branches remotos, compartilhando tags, formatando e aplicando patches, enviando patches por email.
  • Estabelecendo um workflow de desenvolvimento com o Git, exemplos de workflows de desenvolvimento comuns, estudando o github flow e o git-flow, comparando fast-forward com commits de merge, liberando releases com branches e tags, boas práticas para definir uma mensagem de commit, dicas e sugestões de definição de workflows, gerando um número identificador do build da aplicação com o Git, trabalhando com submódulos, implementando scripts de hook.

Para mais detal­hes sobre o con­teúdo, você pode consultar a agenda e os slides do treina­mento.

Os slides deste treinamento são liberados sob a licença Creative Commons BY-SA 3.0, e os fontes podem ser baixados aqui.

Algumas fotos dos treinamentos já realizados podem ser visualizadas aqui.

Público alvo

Estudantes, engenheiros, analistas, desenvolvedores e líderes de equipes de desenvolvimento de software.

Pré-requisitos

Familiaridade com a interface de linha de comandos, experiência com desenvolvimento de software, desejável (mas não obrigatória) experiência com uma ferramenta de controle de versão (CVS, Subversion, Perforce, TFVC, etc).

Mate­r­ial de estudo

O material de estudo é composto pelos slides das apresentações, o livro de atividades e exercícios, os guias de referência e documentos de estudo adicionais. Todo o material será fornecido de forma eletrônica no início do treinamento.

Turmas abertas

Os treinamentos em turmas abertas são realizados em um ambiente agradável, com um laboratório devidamente equipado e acesso à Internet. As aulas são normalmente ministradas em período integral, com uma parada para o almoço e um coffee-break pela manhã.

Caso esteja interessado em participar do treinamento e não exista uma turma aberta, faça a pré-inscrição clicando aqui. Entraremos em contato assim que uma nova turma for aberta.

Treinamentos in-company

Se você planeja capacitar a sua equipe, considere um treinamento na sua empresa.

Turmas fechadas para treinamento in-company possuem as mesmas características de uma turma aberta. Neste modelo, a empresa é responsável por fornecer os recursos necessários para a realização do treinamento, incluindo sala, datashow e as máquinas de desenvolvimento. Esse modelo também traz grande economia para a empresa, já que os custos de transporte e hospedagem de vários funcionários é reduzido apenas ao do instrutor.

Se sua empresa tem uma necessidade especial, podemos estudar um programa que atenda sua necessidade de forma direcionada, como preparar o treinamento para uma plataforma de hardware específica ou desenvolver um conteúdo adicional. Não hesite em entrar em contato por e-mail ou pela página de contato.

Treinamentos na sua cidade

Você pode levar os treina­mentos para sua comu­nidade, em qual­quer cidade do Brasil.

Você não tem condições de realizar o curso em São Paulo? Você tem um grupo de estu­dos e quer aprender mais sobre determinada tecnologia? Você coor­dena ou par­tic­ipa da coor­de­nação de algum curso na sua uni­ver­si­dade e gostaria de treinar seus alunos? Você tem um espaço, quer reunir os ami­gos e pas­sar agradáveis horas apren­dendo sobre sistemas embar­cados?

Mande um e-mail ou uma mensagem para nós. Informe seu curso de interesse e também a sua cidade. Se conseguirmos formar uma turma, poderemos levar o treinamento para a sua cidade!

Ainda tem dúvidas?

Em caso de dúvidas, críticas ou sugestões, envie um e-mail ou deixe uma mensagem na página de contato.

Entre em contato