Controle de Versão com GIT



Documentos relacionados
Git e contribuição para projetos Open Source. Bruno Orlandi

Salvando modificações localmente (commit) Enviando modificações para o servidor (push) Sinalizando versão estável (tag)

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

Introdução ao Git. Introdução ao GIT. Anderson Moreira. Baseado nos slides disponíveis em http//free electrons.com

Agenda. Aprendendo Git/GitHub. Definições. Git. História 31/05/2012. Vantagem de usar controle de versão

Padrões de configuração GIT

Versionamento de Código. Núcleo de Desenvolvimento de Software

Controle de versão e fluxo de trabalho em projetos de desenvolvimento de software

Introdução ao Git. Laboratório de Programação. Luísa Lima, Pedro Vasconcelos, DCC/FCUP. Março 2015

Controle de Versão. Prof. Msc. Bruno Urbano Rodrigues.

Controle de Versão de Software. Luiz Jácome Júnior

2. GERÊNCIA DE CONFIGURAÇÃO DE SOTWARE

Gestão de Desenvolvimento de Sistemas por Controle de Versão Utilizando SVN. Software para Controle de Versão SVN/Subversion

Git no Controle. Com softwares de controle de

Objetivo. Introdução; História; Conceito; SVN; Instalação; Prática através de exercícios.

Gerência de Configuração de Software Funções

O primeiro passo é habilitar acesso externo através de web service a configuração é bem simples e não exige maiores explicações.

Gerência de Configuração. Professor: Dr. Eduardo Santana de Almeida Universidade Federal da Bahia

Marlos de Moraes Tavares. Tutorial Rsync

Controle de Versões com o Git

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

AUXÍLIO COMPUTACIONAL

Controle de Versão com CVS

Controlo de versões com GIT

Git Funcionamento e Workflow. Pesquisa e Desenvolvimento Tecnológico

Redmine. Simplificando a gestão de projetos

GUIA INTEGRA SERVICES E STATUS MONITOR

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS APLICATIVOS HÍBRIDOS. Prof. Angelo Augusto Frozza, M.Sc.

Curso de git. Aula de outubro de 2018

Para funcionamento do Netz, alguns programas devem ser instalados e alguns procedimentos devem ser seguidos. São eles:

Universidade Estadual de Campinas. CVS - Concurrent Version System

Redmine. Simplificando a gestão de projetos

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS - APLICATIVOS HÍBRIDOS. Prof. Angelo Augusto Frozza, M.Sc.

MAC Software Livre. Professor: Fabio Kon REPOSITÓRIOS ÁLVARO HENRY MAMANI ALIAGA POLIANA MAGALHÃES REIS

Sistemas de Controle de Versão

FTIN Formação Técnica em Informática Módulo de Administração de Servidores de Rede AULA 03. Prof. Gabriel Silva

Sistema de Controle de Versão - CVS

Versionamento Ágil com Git

Instalando o Linux e outros Softwares

Curso de Linux Básico com o Linux Educacional

Como contribuir com projetos de software livre

GUIA DE BOAS PRÁTICAS

Análise do projeto arquitetural do GIT

Manual de Utilização do Tortoise SVN. Fábrica de Software. Algar Tecnologia Unidade BH

3 Estudo de Ferramentas

Introdução ao Controle de Versões. Leonardo Murta

Roteiro 3: Sistemas Linux arquivos e diretórios

Índice. Manual Backup Online. 03 Capítulo 1: Visão Geral

Agenda. Gerência de Configuração de Software. Atividade Sala. Quais os problemas? P1) Duplicidade de Trabalho. P2) Trabalhos Sobrepostos

Customização ao Extremo

SAIBA MAIS SOBRE O LINUX E DESCUBRA QUAL DISTRIBUIÇÃO É MELHOR PARA VOCÊ! CURSO

Sistema Operacional Unidade 8.2 Instalação de aplicativos. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Análise Comparativa entre Sistemas de Controle de Versões Daniel Tannure Menandro de Freitas

16:21:50. Introdução à Informática com Software Livre

Manual de Instalação. Instalação via apt-get

Tópicos. Atualizações e segurança do sistema. Manutenção Preventiva e Corretiva de Software (utilizando o MS Windows XP)

PROJETO CEMEA. Um trabalho educacional

Casa do Código Livros para o programador Rua Vergueiro, º andar Vila Mariana São Paulo SP Brasil

MANUAL PARA GERAÇÃO DE CAT52 IMPRESSORA BEMATECH

Como Instalar Programas no GNU/Linux. Elexsandro Rangel dos Santos

Software Livre. Acesso ao código fonte Alterar o código fonte Redistribuir Utilizar como desejar

O PaperPort 12 Special Edition (SE) possui uma grande variedade de novos e valiosos recursos que ajudam a gerenciar seus documentos.

Manual de backup do banco de dados PostgreSQL - Versão 2. Setembro-2011

TRBOnet MDC Console. Manual de Operação

Backup com Bacula. 05 de Março de Ponto de Presença da RNP no Espírito Santo. Sobre o Bacula. Comandos de console Interface Web.

Introdução ao Git. Laboratório de Programação. Pedro Vasconcelos, Manuel Barbosa, DCC/FCUP. Fevereiro 2016

J820. Integração Contínua. com CVS, CruiseControl, Cruise Control. argonavis.com.br. AntHill Gump e Helder da Rocha (helder@acm.

Guia de Atualização TOTVS Segurança e Acesso 12.1

I N F O R M Á T I C A. Sistemas Operacionais Prof. Dr. Rogério Vargas Campus Itaqui-RS

Maker Planet Manual do Usuário

UM NOVO CONCEITO EM HOSPEDAGEM DE DOMÍNIO

SSE 3.0 Guia Rápido Parametrizando o SISTEMA DE SECRETARIA Nesta Edição Configurando a Conexão com o Banco de Dados

EverSafe Online Backup Client

Procedimentos para Instalação do Sisloc

Sistema P2P com Timestamping para Sincronização de Diretórios

Procedimentos para Reinstalação do Sisloc

Linux Network Servers

Tutorial SVN Básico Engenharia de Software. Denise Notini Nogueira

FANESE Faculdade de Administração e Negócios de Sergipe

Procedimentos para Instalação do SISLOC

Gerenciamento de Pacotes

Sistemas de Controle de Versão ~Subversion~ Juliano Ferraz Ravasi UNESP Rio Claro

UNIVERSIDADE FEDERAL DE GOIÁS CERCOMP (CENTRO DE RECURSOS COMPUTACIONAIS) TUTORIAL DE USO DO WEBMAIL - UFG

Manual de Instalação PIMSConnector em Windows

06/06/2013. O que é Software de Sistema? Sistema Operacional (SO) Tipos de Software de Sistema. Fatia de Mercado :: SO Desktop

Elgg - Participatório. Departamento de Informática Universidade Federal do Paraná (UFPR) Curitiba PR c3participa@c3sl.ufpr.br

Manual de Utilização

SAD Gestor Gerenciador de Backup

Lógica de Programação

Uma poderosa ferramenta de monitoramento. Madson Santos - madson@pop-pi.rnp.br Técnico de Operação e Manutenção do PoP-PI/RNP

Como é o Funcionamento do LTSP

SparkleShare. Arthur Henrique Danilo Inácio Luíla Oliveira Paulo Junior

Transcrição:

Controle de Versão com GIT Túlio Toffolo tulio@toffolo.com.br http://www.toffolo.com.br Conteúdo Extra Algoritmos e Estruturas de Dados

História do GIT Linus usa BitKeeper para gerenciar o código de suas versões do Linux Um belo dia ocorre um problema com a licença do BitKeeper Linus gostava das funcionalidades E não aceitava outras ferramentas como CVS e SVN 05/04/2005 Surge a primeira versão do GIT 15/06/2005 Git é usado para no controle de versão do kernel do Linux

Quem está usando GIT? Android Gnome Google Kernel do Linux Qt (toolkit) Ruby on Rails PostgreSQL KDE X.Org Debian Perl GCC Samba phpmyadmin e muitos outros 3

Controle de versão centralizada Nomes utilizados: VCS Version Control System SCM Source Code Management Commit Update 4

Controle de versão centralizada 5

Controle de versão centralizada Sistemas de controle de versão tradicionais Trabalham com um banco de dados central Clientes possuem apenas a versão mais atual Exemplos CVS Subversion (SVN) Visual Source Safe Desafios Conflitos no desenvolvimento com muitos usuários Comunicação servidor/cliente Backup?

Controle de versão distribuída Não existe servidor real (apenas por convenção) Todo cliente possui o repositório O controle de versão funciona mesmo offline Fazer backups é trivial Outros sistemas de controle de versão distribuídos Mercurial BitKeeper Darcs Bazaar

Controle de versão distribuída 8

Controle de versão distribuída 9

Vantagens do GIT Consistência Nenhum repositório deve possui mais data que qualquer outro Velocidade Muito mais rápidos que sistemas de controle de versão convencionais (estou falando de CVS e Subversion) Espaço Algoritmos de compressão eficientes que analisam o todo Reduz o tamanho local, assim como as transferências em operações de push/pull Simplicidade Modelo de uso é muito simples Open Source

Desvantagens do GIT Documentado quase exclusivamente através de páginas geradas via man Maior massa de dados em operações push/pull do que em commits/updates de versões centralizadas e que eu saiba nenhuma outra!

Arquitetura do GIT Indíces Armazenam informação sobre a versão atual e as mudanças feitas nela Banco de Dados de Objetos Blobs (arquivos) Armazenados na pasta.git/objects Indexados por um único hash Todos os arquivos são armazenados em blobs Trees (diretórios) Commits Cada commit gera um novo objeto Informações do commit: hash do pai, nome do autor, data/hora do commit e o hash da estrutura corrente

Instalando o GIT Windows: msysgit: http://code.google.com/p/msysgit/ Git Extensions: interface gráfica de fácil uso Ubuntu: sudo apt-get install git-core gitk Mac (com MacPorts instado): sudo port install git-core gitk 13

Armazenamento do GIT A pasta.git Apenas no diretório raiz do projeto Contem todos os objetos, commits e configurações do projeto.git/config: arquivo com configurações específicas do repositório.gitignore Arquivo texto que indica os arquivos que devem ser ignorados Exemplo: *.exe, *.dll, *.o, ~*

Alguns comandos Pegar ou iniciar um repositório git init git clone Commits git add git commit Informações git help git status git diff git log git show

Usando o GIT Iniciando seu repositório: git init Configurando seus dados: git config --global user.name Túlio Toffolo git config --global user.email tulio@toffolo.com.br" Adicionando arquivos à lista de commit git add arquivo.c git add. 16

Usando o GIT Fazendo o commit git commit m Mensagem de commit git commit a m Mensagem de commit Verificando as alterações: git status git log git reflog Removendo arquivo do repositorio: git rm arquivo.c 17

Usando o GIT Desfazendo as alterações desde algum commit gitk checkout. Movendo para uma versão antiga do repositório: git reset git reset --force (força a barra e volta sem fazer commit) Revertendo para uma versão antiga do repositório: git revert (nao remove nada, apenas aplica um patch) 18

Usando o GIT GIT nunca deleta um commit Assim, é difícil demais perder dados usando GIT Ø Muito difícil dar um tiro no pé Criando TAGs git tag <nome_da_tag> 19

Usando branches O sistema de branches é a parte mais interessanto no uso do GIT Você sempre está trabalhando em algum BRANCH Um BRANCH pode ser local ou remoto Visualizando os branches git branch Criando um branch: git branch <nome_do_branch> 20

Merge Como funciona o branching? o--o--o <-- origin \ a--b--c <-- mywork \ x--y--z <-- teste O que é um merge? o--o--o--a--b--c--x--y--z

Rebase Como funciona o branching? o--o--o--o--o <-- origin \ a--b--c <-- mywork O que é um rebase? o--o--o--o--o <-- origin \ a--b--c <-- mywork

Merge (exemplo 2) Como funciona o branching? o--o--o--o--o--o <-- origin \ a--b--c <-- mywork O que é um rebase? o--o--o--o--o--o <-- origin \ \ a--b--c--m <-- mywork

Otimizando a base GIT git gc Limpa o repositório e compacta a base Utilize de tempos em tempos em projetos grandes!!! Aumenta a performance consideravelmente git fsck Confere a base de objetos Pode mostrar informações de erros

Usando o GIT remotamente Criar uma réplica de um repositório: git clone Pegar modificações feitas em um repositório git fetch (pega as atualizações e coloca em outro branch) git pull (pega as atualizações e já faz merge) Enviar modificações git push nome_remoto 25

Usando o GIT remotamente Protocolos Pasta no seu computador (!!!) SSH Rsync HTTP Protocolo próprio do Git Criar apontamento remoto: git remote add /temp/repositorio_local/.git 26

Git para Backups Exemplo: Um diretório precisa de backup!!! Rsync é uma ferramenta adequada? Usa espaço em excesso Solução: crie um repositório GIT no diretório Faça commits regulares Faça push para o local do backup Mais que backup: backup versionado e usando menos espaço!

Outras ferramentas bacanas do GIT bash/zsh completion Gitk GUI para visualizar os commits git instaweb Usado para gerar páginas web com o repositório