28
Sistema Descentralizado de Controle de Versões

Git - Sistema Descentralizado de Controle de Versões

Embed Size (px)

DESCRIPTION

Conceitos básicos e histórico do DVCS que mais cresce no mundo.

Citation preview

Sistema Descentralizado de Controle de Versões

Equipe

RedaçãoElias Alves

EdiçãoJonatas Esteves

ProduçãoLeandro Cavalcante

GIT

O que é GIT?É um VCS descentralizado.

Qual a finalidade ?Ter maior controle sobre as diversas versões de um sistema

Quem deve utilizar?Qualquer um, empresas que precisam manter a organização das versões de seus sistemas, ou qualquer pessoa que encontre alguma utilidade no git.

Quem usa?

& Nós.

HistóriaO Kernel do GNU/Linux é um projeto de código aberto de larga escala, e durante muito tempo de seu desenvolvimento (1991-2002), as alterações que eram realizadas eram repassadas por aí como patches e arquivo compactados. Em 2002, a comunidade de desenvolvimento optou por utilizar um sistema proprietário de versionamento descentralizado chamado BitKeeper.

Mas em 2005, o relacionamento entre a comunidade de desenvolvimento do Linux e a companhia responsável pelo BitKeeper ruiu, o que impeliu a comunidade e em particular Linus Torvalds, o principal criador do Linux, e desenvolver seu próprio sistema de versionamento baseado na experiência que tiveram com o BitKeeper. As metas para o novo sistema eram:

Rapidez Design simples Excelente suporte para o desenvolvimento não-linear Inteiramente distribuído Escalabilidade

Desde 2005 o Git tem evoluído sem perder essas características, sendo incrivelmente rápido e simples, poderoso e leve.

Mas o que é um VCS?Version Control System - sistema de controle de versão ou sistema de versionamento é um tipo de sistema responsável por manter as diferentes alterações e logs de arquivo. Possuem ferramentas para reverter, modificar, travar e comparar alterações de arquivos.

Quando usar?Projetos em grupos, projetos pessoais, trabalhos acadêmicos, desenvolvimento de sistemas, projetos de larga escala, etc.

Diversas versões, um local de armazenamento.

VCS Local

VCS Centralizado (CVCS)Um servidor, diversos clientes. Ex.: Subversion (CVCS)

VCS Distribuído (DVCS)Diversos clientes, cada um tem cópias dos arquivos que são armazenados no servidor, caso o servidor tenha problema é possível obter novamente o arquivo.

FuncionamentoUm repositório git armazena o arquivo, e ao alterar ele não necessariamente salva um novo arquivo como uma nova versão, mas salva apenas o que foi alterado, as demais áreas ele referencia por uma ligação as partes antigas fazendo com que o estado de todo o sistema seja versionado (snapshot).

Os campos tracejados indicam links

Conceitos

Operações LocaisQuase tudo é local, ou seja, você pode ver todas as versões do sistema localmente e utiliza-las caso esteja offline, assim como alterar e fazer commit da alterações.ChecksumTodo commit tem um checksum diferente o que impossibilita que alterações fiquem perdidas.

Conceitos

Remover dadosNão é possível, pois todas as alterações são salvas, sendo assim, sempre será possível recuperar um arquivo

Três estadosgit diretório (git directory)área de preparação (staging area)diretório de trabalho (working directory)

Areas do Gitgit diretório: area copiada quando se copia um diretório, armazena metadados, e o o banco de objetos.área de preparação: é um index que armazena informações do proximo commit.diretório de trabalho: arquivo de uma versão do projeto.

Explicando:• modifica arquivos no seu diretório de trabalho.• seleciona os arquivos adicionando eles para sua área de preparação.• 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.

Fluxo de trabalho

http://git-scm.com/book/pt-br/

Para saber mais

O Lado Pratico

Inicio: Inicialmenteo o Git foi pensado para a plataforma Linux, porém, vamos primeiro exemplificar o processo do funcionamento do Git no Windows, utilizando a plataforma do GitHub.

O lado Pratico

Esta seria a tela inicial do desssa versão do Git no Windows.

Podemos:Criar, Clonar, Abrir repositórios.

Neste caso já temos o repositório Nova pasta(3)

O Lado Pratico

Esta é a interface de utilização principal do Git no Windows, porém, neste trabalho iremos falar mais da parte de codigo.

O Lado Pratico

Instalação no LinuxInstalar o Git no Linux via um instalador binário, você

pode fazê-lo com a ferramenta de gerenciamento de pacotes (packages) disponível na sua distribuiçãoDistribuição:

Fedora: $ yum install git-coreDebian: $ apt-get install git

O Lado PraticoA primeira coisa a ser feita no Git após instalar e configurar é definir o nome do usuário:$ git config --global user.name “joao" $ git config --global user.email [email protected] será feito apenas uma vez e em cada commit efetuado o Git utilizará estas informações.

$ git help <verb> $ git <verb> --help $ man git-<verb> Comandos de Ajuda, Help

O Lado PraticoPra iniciar a monitoração com Git vá até o diretório e digite:

$ git initCom isso você passa a monitorar o diretório em que está localizado.

$ git clone git://github.com/schacon/grit.git$ git clone https://github.com/schacon/grit.git$ git clone user@server:/path.gitCom esse comando você criar um clone do diretório especificado, podem ser utilizados vários protocolos.

O Lado Pratico$ git status

Este comando verifica quais arquivos estão monitorados e selecionados para executar o commit, ao realizar este comando você ira ver os arquivos monitorados que foram alterados e os não alterados separadamente.

O Lado Pratico$ git status# On branch master # Changes to be committed: # (use "git reset HEAD <file>..." to unstage)

# new file: README # modified: benchmarks.rb

Aqui apresentamos um arquivo que foi criado e um que foi alterado para a execução do commit

O Lado Pratico$ git add arquivo.txtO Comando add é utilizado para adicionar arquivos ao commit, para monitorar existem várias funções.

$ cat .gitignore *.[oa] *~Cria uma lista de padrões á serem ignorados pelo Git, neste exemplo arquivos terminados com as letras o, ou a, ou ~.

O Lado Pratico$ git commitRealiza o Commit dos dados selecionados e monitorados.

$ git diffExibe os arquivos que você alterou mas não selecionou para o commit

$ git rmRealiza a remoção do arquivo da área de monitoramento

O Lado Pratico$ git mv arquivo_origem arquivo_destinoO comando move o arquivo primeiro especifica o arquivo de origem e depois o arquivo de destino, precedidos pelo comando $ git mv.

$ git logExibe o histórico de commits realizados

-p : demonstra as diferenças que ocorreu no commit--stat : demonstra estaticas para cada commit

São complementares ao $git log

Conclusão

Existe uma infinidade de opções para o Git, demonstramos apenas as mais essênciais para a utilização básica do Git em um ambiente de monitoração, além de apresentar o conceito teórico do Git.

Referênciashttp://git-scm.com/book/pt-br/http://rafaelsart.com/tutorial/tutorial_git_github.pdfhttp://tableless.com.br/iniciando-no-git-parte-1/http://tableless.com.br/introducao-das-premissas-dos-controles-de-versao/