GIT Controlo de versões

Documentos relacionados
José cria um repositório vazio no Bitbucket ( José cria no seu computador de desenvolvimento um repositório local

Controlo de versões com GIT

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

Integrated Government Resources Planning IGRP Open Source. Como importar e contribuir - GitHub. Núcleo Operacional da Sociedade de Informação

Git e Pais

Exemplos e comandos úteis de git

TUTORIAL GIT Victor Breder Comp-19 Março de 2017

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

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

Desenvolvimento de so-ware com Git. Leonardo Gresta Paulino Murta

Primeiros passos com no trabalho com Git

Mini Curso Gerenciamento de Configuração e Mudança com GIT + Eclipse. Jadson Santos Amador Pahim

Controle de Versões com o Git

Controle de versão utilizando Git André G. C. Pacheco Janeiro de 2018

Daves Marcio Silva Martins Mestre em Computação de Alto Desempenho - UFRJ.

INTRODUÇÃO À INTEGRAÇÃO CONTÍNUA. Jadson Santos Software Engineer Informatic Superintendence (SINFO) - UFRN

Engenharia de Software. Prof. Raquel Silveira

Padrões de configuração GIT

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

TUTORIAL PRÁTICO SOBRE Git. Versão 1.1

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

Controle de Versão com GIT

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

PySIGEP Documentation

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

TUTORIAL DE USO DO GIT JUNTO AO ECLIPSE

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

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

Curso de git. Aula de outubro de 2018

Documentação PyCEPCorreios

Entre os VCS s, podemos sitar o Mercurial, Subversion, CVS, Git dentre outros. E é do Git que vamos falar hoje.

GIT. Prof. Rafael Sandim

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

Controle de Versão com CVS

Introdução ao GitHub Peter Bell e Brent Beer

Introdução ao Git. Author: Eduardo R. D Avila Date: Tue Mar 26 19:00:

CVS Concurrent Versions System

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

Plano de testes. Norma ANSI/IEEE para Documentação de Teste de Software define plano de testes como:

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

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

Gerência da Configuração de Software. Teresa Maciel DEINFO/UFRPE

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

ENGENHARIA DE SOFTWARE Controlo de versões com git

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

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

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

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

Plano de Gerenciamento de Configuração

Formação de DBAs SQL Server 2008

Universidade Federal de Santa Maria Centro de Tecnologia Programa de Educação Tutorial - Sistemas de Informação TUTORIAL

Ruby on Rails Avançado

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

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

Manual de Instalação v7.60

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

Como contribuir com projetos de software livre

Manual do Utilizador Brother Software Licence Management Tool

Sistema Distribuído. Sistema Distribuído. Aplicações Distribuídas. Conceitos Básicos

Manual do Utilizador Brother Meter Read Tool

Sistemas Operativos. Luís Paulo Reis. Sistemas Operativos. Sumário

Gerência de Configuração: Terminologia. Leonardo Gresta Paulino Murta

Introdução à Programação. João Manuel R. S. Tavares

Introdução à Programação

[versão para impressão] Link original: comp=24763 Conhecendo o PL/SQL

AGILIDADE NO DESENVOLVIMENTO DE SOFTWARE UTILIZANDO INTEGRAÇÃO CONTÍNUA

Fundamentos de Sistemas Operacionais

ISO/IEC 12207: Manutenção

Sistema de Controle de Versão - CVS

Microsoft Dynamics NAV

Sistemas de Controle de Versão

Transcrição:

Universidade Portucalense Engenharia de Software ES01 2013-2014 1 Universidade Portucalense Engenharia de Software ES01 2013-2014 1 GIT Controlo de versões O GIT tem duas vantagens essenciais: Faz o controlo de versões Permite coordenar o desenvolvimento simultâneo dos vários elementos de uma equipa, gerindo conflitos Um repositório central guarda as várias versões dos documentos criados Pode ser baseado num servidor web, uma base de dados (Berkeley DB), ou simplesmente um conjunto de diretórios Cada elemento da equipa trabalha sobre uma cópia local (no seu computador) do projeto Quando apropriado, faz refletir as alterações no repositório

Universidade Portucalense Engenharia de Software ES01 2013-2014 2 Universidade Portucalense Engenharia de Software ES01 2013-2014 2 O que é o controlo de versões São criadas versões sucessivas dos documentos Quando necessário, pode-se recuperar uma versão anterior

Universidade Portucalense Engenharia de Software ES01 2013-2014 3 Universidade Portucalense Engenharia de Software ES01 2013-2014 3 Três níveis Working tree: ficheiros que estão a ser editados Staging area, index: marcados para serem guardados no repositório

Universidade Portucalense Engenharia de Software ES01 2013-2014 4 Universidade Portucalense Engenharia de Software ES01 2013-2014 4 Estados dos ficheiros Operações mais frequentes: Add / Stage / Commit

Universidade Portucalense Engenharia de Software ES01 2013-2014 5 Universidade Portucalense Engenharia de Software ES01 2013-2014 5 Trunk, branches e tags Trunk Sequência de desenvolvimento principal Branches Variantes paralelas à sequência de desenvolvimento principal Adaptações para clientes diferentes Trabalho de grupos em paralelo, para evitar updates complexos e frequentes Tags Registo de pontos importantes no desenvolvimento Versões de produção (públicas)

Universidade Portucalense Engenharia de Software ES01 2013-2014 6 Universidade Portucalense Engenharia de Software ES01 2013-2014 6 Repositório local e central clone push pull... Repositório central (GitHub, p.ex.) Repositório local Repositório local Repositório local stage commit branch merge tag... Eclipse Eclipse Eclipse

Universidade Portucalense Engenharia de Software ES01 2013-2014 7 Universidade Portucalense Engenharia de Software ES01 2013-2014 7 Sequência de trabalho normal (1) Criar uma cópia de trabalho atualizada, a partir do repositório central (clone, checkout). Esta passa a ser a revisão BASE Atualizar o repositório local com as nossas alterações, quando apropriado, formalizando uma nova versão (commit) Ao atualizar o repositório, podem ser detetadas inconsistências com alterações feitas por outros elementos da equipa; podem ter que ser resolvidas à mão, uma a uma A versão mais recente do repositório é chamada a revisão HEAD

Universidade Portucalense Engenharia de Software ES01 2013-2014 8 Universidade Portucalense Engenharia de Software ES01 2013-2014 8 Head, master e origin Head o commit corrente do repositório da máquina local para onde o meu repositório está a apontar Master nome do branch criado pelo Git ao criar um repositório frequentement significa main branch Origin nome dado pelo Git ao repositório central (remoto) Head é um nome oficializado no Git, master e origin são nomes usados frequentemente, mas não são obrigatórios

Universidade Portucalense Engenharia de Software ES01 2013-2014 9 Universidade Portucalense Engenharia de Software ES01 2013-2014 9 Sequência de trabalho normal (2) Atualizar os ficheiros de trabalho quando adequado, para refletir na cópia de trabalho as alterações feitas no repositório central por outros elementos da equipa (pull) Atualizar o repositório central com as nossas alterações, quando apropriado (push) Ao atualizar o repositório, podem ser detetadas inconsistências com alterações feitas por outros elementos da equipa; podem ter que ser resolvidas à mão, uma a uma

Universidade Portucalense Engenharia de Software ES01 2013-2014 10 Universidade Portucalense Engenharia de Software ES01 2013-2014 10 Sequência típica branch e tag Sequência típica Os commits são feitos nas versões trunk; inclui novo código, correção de bugs, etc. Quando a equipa entende que uma versão está a ficar pronta, o trunk é copiado para um branch. O trunk é copiado por exemplo para um branch 1.0 Duas equipas continuam a trabalhar em paralelo. Uma equipa faz os testes rigorosos do branch 1.0, e a outra continua o desenvolvimento (por exemplo para a futura versão 2.0). Quaisquer bugs descobertos numa das versões devem ser corrigidos em ambas Quando terminarem os testes, a versão de software é distribuída, sendo criado o tag 1.0.0, que fica como referência do que foi entregue aos clientes O trabalho no branch 1.0 pode continuar, com pequenos melhoramentos ou correção de bugs; se apropriado, o branch 1.0 pode dar origem a um tag 1.0.1

Universidade Portucalense Engenharia de Software ES01 2013-2014 11 Universidade Portucalense Engenharia de Software ES01 2013-2014 11 Comandos mais usados (1) Commit: para fazer refletir no repositório as alterações feitas na cópia de trabalho Ao fazer commit é criada uma nova versão do projeto Deve-se escrever um comentário que seja sugestivo e permita identificar facilmente esta versão Pull: para atualizar a cópia de trabalho com as alterações feitas por outros no repositório central, fazendo merge e commit Update to revision / switch: para mudar a cópia de trabalho, passando a trabalhar com uma dada revisão

Universidade Portucalense Engenharia de Software ES01 2013-2014 12 Universidade Portucalense Engenharia de Software ES01 2013-2014 12 Comandos mais usados (2) Branch: para criar uma nova sequência de desenvolvimento. Os updates e commits só afetam o branch em que estamos a trabalhar. Merge: para importar para a cópia de trabalho as alterações feitas por outros utilizadores ou em outros branches Tag: para criar uma imagem do projeto (uma fotografia do estado atual). Pode ser por exemplo uma versão do projeto que vai ser enviada para um ou mais clientes Revert: para anular as alterações feitas e regressar a uma versão BASE

Universidade Portucalense Engenharia de Software ES01 2013-2014 13 Universidade Portucalense Engenharia de Software ES01 2013-2014 13 Push e pull (1) other master clone: commit local: remotes/origin/other master remotes/origin/master remotes/origin/other master remotes/origin/master push: remotes/origin/other master remotes/origin/master

Universidade Portucalense Engenharia de Software ES01 2013-2014 14 Universidade Portucalense Engenharia de Software ES01 2013-2014 14 Push e pull (2) Fazemos push e depois outro programador P tenta fazer push; o server não permite; então para atualizar, P tem que primeiro fazer pull para incluir o nosso commit e só depois fazer push pull: remotes/origin/other master remotes/origin/master agora P pode fazer push para atualizar o repositório central; se fizermos pull, incluimos o commit do outro programador