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.
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.
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.
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.