git + github
DESCRIPTION
Apresentação realizada durante a reunião do grupo Práticas de Software na UEFS sobre Git e Github,TRANSCRIPT
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
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!!