Git + Github

Preview:

DESCRIPTION

Apresentação realizada durante a reunião do grupo Práticas de Software na UEFS sobre Git e Github,

Citation preview

Por Jonata Weberjonataa@gmail.com

+

Grupo Práticas de Software

Agenda Controle de Versão

O que é? Benefícios Por que utilizar? Modelos

Git Noções básicas Três Estados Prática

Github

Controle de Versão (VCS)

O que é? O controle de versão é um sistema que registra as

mudanças feitas em um arquivo ou um conjunto de arquivos ao longo do tempo de forma que você possa recuperar versões específicas

Benefícios Histórico

Quem, quando e onde? Colaboração

Trabalho paralelo Variações no Projeto

Avaliação Rápida

Alguém já sobrescreveu o código de outra pessoa por acidente e acabou perdendo as alterações?

Tem dificuldades em saber quais as alterações efetuadas em um software, quando foram feitas e quem fez?

Tem dificuldade em recuperar o código de uma versão anterior que está em produção?

Tem problemas em manter variações do sistema ao mesmo tempo?

Avaliação Rápida Se alguma das perguntas anteriores teve um

SIM como resposta, então sua equipe necessita urgentemente de um sistema para controle de versão!

Controle de versão é fundamental para o desenvolvimento de software

Como funciona um VCS?

Ferramentas As melhores são Open Source

Centralizado Subversion, por exemplo.

Distribuído Exemplo: Mercurial e o Git

VCS Centralizado

VCS Distribuído

VCS Distribuído Pull (Puxar)

Atualiza o repositório local Push (Empurrar)

Atualiza o repositório remoto

VCS Distribuído

Noções Básicas de Git

Snapshots, E Não Diferenças

VCS Convencionais

Snapshots, E Não Diferenças

Git

Noções Básicas de Git Quase todas as operações são locais

Menor latência Histórico do projeto no seu disco local Trabalho offline

Git tem integridade Checksum (hash SHA-1)24b9da6552252987aa493b52f8696cd6d3b00373

Fazer um commit de um snapshot no Git, é muito difícil que você o perca

Noções Básicas de Git

Os Três Estados Modificado (modified) Preparado (staged) Consolidado (committed)

Os Três Estados

Os Três Estados O workflow básico do Git pode ser descrito

assim:1. Você modifica arquivos no seu diretório de

trabalho.2. Você seleciona os arquivos, adicionando

snapshots deles para sua área de preparação.3. Você faz um commit, que leva os arquivos

como eles estão na sua área de preparação e os armazena permanentemente no seu diretório Git.

Instalando Git Baixar snapshot mais recente:

http://git-scm.com/download Instalando no Linux

$ yum install git-core$ apt-get install git-core

Instalando no Mac http://code.google.com/p/git-osx-installer

Instalando Git http://msysgit.github.com

Cliente SSH e GUI padrão Sua Identidade

$ git config --global user.name “Jonata Weber"$ git config --global user.email

jonataa@gmail.com

Git na Prática Criar um novo repositório

git init

Obter um repositóriogit clone /caminho/para/o/repositório

git clone usuário@servidor:/caminho/para/o/repositório

Adicionar e confirmar (staging)git add <arquivo>

git add *

Commitgit commit -m "comentários das alterações“

Enviar alteraçõesgit push origin master

Adicionar um servidor remotogit remote add origin <servidor>

Log de commitsgit log

Exemplo Prático1. Criar e movimentar um repositório local2. Empurrar (Push) para um repositório remoto3. Puxar (Pull) de um repositório remoto4. Deploy automático

Github GitHub é um Serviço de Web Hosting

Compartilhado para projetos que usam o controle de versionamento Git.

https://github.com/ É escrito em Ruby on Rails. Planos comerciais e gratuitos para projetos de

código aberto. Possui algumas funcionalidades

Rede social como feeds, followers, wiki e um gráfico que mostra como os desenvolvedores trabalham as versões de seus repositórios.

Referências http://www.pronus.eng.br/artigos_tutoriais/gerencia_configuracao/

conceitos_basicos_controle_versao_centralizado_e_distribuido.php?pagNum=3 http://git-scm.com/book/pt-br/Primeiros-passos-Sobre-Controle-de-Vers%C3%A3o http://rogerdudler.github.io/git-guide/index.pt_BR.html http://www.akitaonrails.com/2010/02/13/deploy-com-git-push https://devcenter.heroku.com/articles/git http://blog.thiagobelem.net/automatizando-a-instalacao-deploy-e-atualizacao-de-sites-

com-git/ http://www.contagia.com.br/blog/git-pra-que-serve/ http://marklodato.github.io/visual-git-guide/index-en.html http://www.abstraindo.com/ambiente-de-desenvolvimento/vagrant-de-forma-simples-

parte-1/

Obrigado!!

Recommended