introdução a sistemas de controle de versão git
TRANSCRIPT
08 e 09 de Dezembro de 2016
Nome: Fabian Cesar Pereira Brandão ManoelE-mail: [email protected]
INTRODUÇÃO A SISTEMAS CONTROLE DE VERSÃO: GIT
OUTLINE 1.0. Introdução a sistemas de controle de
versão (CVS)
2.0. Introdução ao GIT
3.0. Conclusão
4.0. Referência bibliográfica
OUTLINE1.0. Introdução a sistemas de controle de versão(CVS)
1.1. O que é Controle de versão1.2. Local
1.3. Centralizado1.4. Distribuído
4Introdução a sistemas de controle de versões: GIT
1.1. O que é Controle de versão
•Sistema que registra as mudanças feitas em arquivos permitindo:
•a recuperação de versões específicas sempre que solicitado;
•a comparação sobre as modificações feitas;
•Conhecer quem, o que , como e quando alterou os arquivos;
•Existem 3 tipos de Sistemas de controle de versão:
1.0. INTRODUÇÃO A SISTEMAS DE CONTROLE DE VERSÃO
5Introdução a sistemas de controle de versões: GIT
1.2. Local
•Todo o controle de versionamento é feito de forma local. Ideal para projetos individuais.
1.0. INTRODUÇÃO A SISTEMAS DE CONTROLE DE VERSÃO
6Introdução a sistemas de controle de versões: GIT
1.3. Centralizado
•Todo o controle de versionamento é feito de forma centralizada. Este método utiliza um servidor central que contém o controle de versão. É deste servidor que outros computadores terão acesso aos arquivos e suas versões.
1.0. INTRODUÇÃO A SISTEMAS DE CONTROLE DE VERSÃO
7Introdução a sistemas de controle de versões: GIT
1.0. INTRODUÇÃO A SISTEMAS DE CONTROLE DE VERSÃO
1.4. Distribuído
•Todo o controle de versionamento é feito de forma distribuída. Este método faz com que todos os envolvidos no projeto possuam clones de todos os arquivos e suas versões.
OUTLINE2.0. Introdução ao GIT
2.1. Contextualizando2.2. Filosofia
2.3. Manuseio de arquivos e ferramenta
2.4. Meu primeiro projeto2.5. Repositório remoto
9Introdução a sistemas de controle de versões: GIT
2.0. INTRODUÇÃO AO GIT2.1. Contextualizando
10Introdução a sistemas de controle de versões: GIT
2.0. INTRODUÇÃO AO GIT2.1. Contextualizando
•GIT é um sistema de controle de versão distribuído que, para atingir seus objetivos, monitora arquivos de forma diferente de qualquer outro sistema. Vamos entender melhor:
11Introdução a sistemas de controle de versões: GIT
2.2. Filosofia
2.0. INTRODUÇÃO AO GIT
•2.2.1. Fluxo de instantâneos•2.2.2. Operações locais•2.2.3. Integridade GIT•2.2.4. Estados e Seções•2.2.5. Principais comandos
12Introdução a sistemas de controle de versões: GIT
2.2.1. Fluxo de instantâneos
2.0. INTRODUÇÃO AO GIT
•Outros sistemas de controle de versão pensam nas informações como uma lista de mudanças a serem armazenadas;
13Introdução a sistemas de controle de versões: GIT
2.2.1. Fluxo de instantâneos
2.0. INTRODUÇÃO AO GIT
•Já o GIT funciona como um fluxo de instantâneos, ou seja, ele apenas “fotografa” a versão salva e associa a esta sempre uma referência de busca.
14Introdução a sistemas de controle de versões: GIT
2.2.2. Operações locais
2.0. INTRODUÇÃO AO GIT
Por ser um Sistema de controle de versão distribuído, os locais envolvidos possuem suporte GIT, podendo clonar projetos do servidor. Com isso, ganha-se em velocidade em seus processos.
15Introdução a sistemas de controle de versões: GIT
2.2.3. Integridade GIT
2.0. INTRODUÇÃO AO GIT
•GIT realiza um conjunto de somas para que, quando os arquivos forem armazenados, seja gerado uma sequência de 40 caracteres Hexadecimais através do mecanismo hash SHA-1. Este mecanismo está presente em toda integridade GIT. Segue o exemplo:
16Introdução a sistemas de controle de versões: GIT
2.2.3. Integridade GIT
2.0. INTRODUÇÃO AO GIT
•OBS: Este mecanismo garante que o GIT entenderá as diferenças entre arquivos. Como padrão de Sistemas de controle de versão, o
GIT geralmente só adiciona dados, dificultando as chances de perda de arquivos.
17Introdução a sistemas de controle de versões: GIT
2.2.4. Estados e seções
2.0. INTRODUÇÃO AO GIT
•Seus arquivos residem em 3 estados:
•(ou Commited). Arquivos já estão salvos na área GIT.
•(ou Modified). Arquivos foram modificados mas não se encontram na área GIT.
•(ou Staged). Arquivos foram selecionados e estão prontos para tornarem-se comprometidos.
18Introdução a sistemas de controle de versões: GIT
2.2.4. Estados e seções
2.0. INTRODUÇÃO AO GIT
•Isso nos leva a três seções de um projeto GIT:
19Introdução a sistemas de controle de versões: GIT
2.2.4. Estados e seções
2.0. INTRODUÇÃO AO GIT
20Introdução a sistemas de controle de versões: GIT
2.2.4. Estados e seções
2.0. INTRODUÇÃO AO GIT
21Introdução a sistemas de controle de versões: GIT
2.3. Manuseio de arquivos e ferramenta
2.0. INTRODUÇÃO AO GIT
22Introdução a sistemas de controle de versões: GIT
2.3. Manuseio de arquivos e ferramenta
2.0. INTRODUÇÃO AO GIT
•Para gerenciar os repositórios, o GIT disponibiliza 3 IDEs:•CMD
•GUI
23Introdução a sistemas de controle de versões: GIT
2.3. Manuseio de arquivos e ferramenta
2.0. INTRODUÇÃO AO GIT
•BASH
24Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
ATRAVÉS DO GIT BASH, ENCAMINHE-SE AO DIRETÓRIO QUE DESEJA IMPOR A GERÊNCIA GIT.
25Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
E ENTÃO INICIE A GERÊNCIA GIT ATRAVÉS DO SEGUINTE COMANDO:
E VEJA QUE O GIT INSTALA O DIRETÓRIO OCULTO .git, QUE IRÁ PERMITIR QUE O GIT FAÇA SEU TRABALHO.
26Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
ENTÃO, CRIA-SE NESSE DIRETÓRIO UM PROJETO QUE DEVE SER ENCAMINHADO AO CLIENTE.
VERIFICA-SE, ENTÃO, O STATUS DO REPOSITÓRIO:
E PERCEBE-SE QUE O ARQUIVO ESTÁ NA ÁREA DE TRABALHO E NÃO É RECONHECIDO PELO GIT.
NOTE QUE O PROJETO JÁ POSSUI UM RAMO PADRÃO. ESTE CAMPO INDICA EM QUE RAMO SEU REPOSITÓRIO ESTÁ ATUANDO.
27Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
PARA ENVIAR O ARQUIVO AO CONTROLE GIT, ESTE PRECISA ESTAR NA STAGING AREA (ÁREA DE ESPERA OU PREPARAÇÃO). PARA ISSO USA-SE O COMANDO:
•git add . : ADICIONA TODOS OS ARQUIVOS DA ÁREA DE TRABALHO;•git add *.<formato>: ADICIONA TODOS OS ARQUIVOS DO FORMATO
DESEJADO;•git add <arquivo>.<fotmato>: ADICIONA APENAS O ARQUIVO DESEJADO.
AO CONSULTAR O STATUS NOVAMENTE:
28Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
AGORA QUE OS ARQUIVOS ESTÃO PREPARADOS, SERÁ FEITO O PRIMEIRO COMMIT:
COMMIT EFETUADO.
O PROJETO PROSSEGUIU E FOI INTERESSANTE GUARDAR MAIS 2 MOMENTOS DO PROJETO NO GIT, OU SEJA, REALIZAR 2 COMMITS.
29Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
ESTE É O ESTADO ATUAL DO PROJETO DESTINADO A UM CLIENTE.
30Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
FOI PRECISO TESTAR UMA IMPLEMENTAÇÃO FORA DO PLANEJAMENTO. NESTE CASO,
CRIAMOS UM NOVO RAMO CHAMADO iss53. A SEGUIR O COMANDO E O STATUS DO MEU
REPOSITÓRIO:
HEAD
31Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
HEAD
NESTE REPOSITÓRIO, FOI FEITO UM NOVO COMMIT. VEJA O QUE
ACONTECE.
32Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
É PRECISO IMPLEMENTAR UMA SOLICITAÇÃO NOVA DO CLIENTE.
HEAD
33Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
HEADCLIENTE APROVOU A
IMPLEMENTAÇÃO E PEDIU PARA ADICIONÁ-LA AO PROJETO.
NESTE CASO, USA-SE O CONCEITO MERGE.
34Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
RETORNO ENTÃO À IMPLEMENTAÇÃO PESSOAL E FAÇO
UM NOVO COMMIT.
HEAD
REPARE QUE, COMO O RAMO master PASSOU A APONTAR PARA O MESMO COMMIT QUE O RAMO hotfix, ESTE PODERÁ SER APAGADO.
35Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
FOI APRESENTADO AO CLIENTE E ESTE APROVOU. PEDIU PARA A IMPLEMENTAÇÃO FAZER PARTE DO
PROJETO.
HEAD
APLICA-SE O MERGE. MAS NESSE CASO, O COMMIT C4 NÃO É UM ANCESTRAL DO
COMMIT C5.
36Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
REPARE QUE NESTE CASO UM NOVO COMMIT É FEITO E ESTE NOVO PASSA A TER DOIS COMMITS DE ORIGEM (C4 E C5).
HEAD
37Introdução a sistemas de controle de versões: GIT
2.4. Meu primeiro projeto
2.0. INTRODUÇÃO AO GIT
COM OS OBJETIVOS INICIAIS DO PROJETO DEVIDAMENTE ATINGIDOS, ENTREGAREMOS AO CLIENTE. MAS ATENÇÃO! POR QUESTÕES DE SEGURANÇA, RECOMENDA-SE APLICAR UMA TAG À ESSA VERSÃO.
HEADV1.0.0
38Introdução a sistemas de controle de versões: GIT
2.5. Repositório remoto
2.0. INTRODUÇÃO AO GIT
O conceito de reposirórios remotos permitem que equipes possam trabalhar dinamicamente, pois o projeto e suas versões passam a ser alocados em locais de acesso múltiplo. Assim, é possível que,qualquer pessoa com acesso àquele repositório possa contribuir com o mesmo.
39Introdução a sistemas de controle de versões: GIT
2.5. Repositório remoto
2.0. INTRODUÇÃO AO GIT
REPOSITÓRIO REMOTO
LOCAL 1 LOCAL 2 LOCAL N
40Introdução a sistemas de controle de versões: GIT
2.5. Repositório remoto
2.0. INTRODUÇÃO AO GIT
Dois repositórios remotos se destacam:
41Introdução a sistemas de controle de versões: GIT
2.5. Repositório remoto
2.0. INTRODUÇÃO AO GIT
Alguns conceitos cercam a utilização de repositório remoto. São eles:
REMOTE: seu primeiro contato com repositório remoto deve especificar um nome e a url para este repositório. Veja como é feito.
42Introdução a sistemas de controle de versões: GIT
2.5. Repositório remoto
2.0. INTRODUÇÃO AO GIT
Alguns conceitos cercam a utilização de repositório remoto. São eles:
CLONE: este conceito cria um repositório local clonado do repositório remoto que é destacado por você. Ao fazer um Clone, já é criado um repositório padrão no git, chamado origin com a url do projeto clonado. Veja o comando usado.
43Introdução a sistemas de controle de versões: GIT
2.5. Repositório remoto
2.0. INTRODUÇÃO AO GIT
Alguns conceitos cercam a utilização de repositório remoto. São eles:
PUSH: este conceito realiza uma entregado repositório local para o remoto. Após a realização de todas as modificações feitas localmente, com os commits já definidos, está na hora de atualizar o repositório remoto com as suas modificações. Indicando o nome do repositório remoto e o ramo a ser passado, veja como se dá o commando:
44Introdução a sistemas de controle de versões: GIT
2.5. Repositório remoto
2.0. INTRODUÇÃO AO GIT
Alguns conceitos cercam a utilização de repositório remoto. São eles:
FETCH: este conceito pega todos dados que o seu repositório local ainda não tem. Assim, você terá todas as referências possíveis para juntar os novos dados aos atuais (Merge). Veja como se faz:
45Introdução a sistemas de controle de versões: GIT
2.5. Repositório remoto
2.0. INTRODUÇÃO AO GIT
Alguns conceitos cercam a utilização de repositório remoto. São eles:
PULL: este conceito realiza a captura dos dados não obtido (fetch), além de realizer o merge, o que permite que seu projeto seja atualizado em relação ao repositório remoto. Após a atualização de um projeto no repositório remoto (imagine que alguem fez um Push), é preciso atualizar o repositório local com as modificações feitas. Veja como usar io Pull.
46Introdução a sistemas de controle de versões: GIT
3.0. CONCLUSÃO
Através das aplicações aqui mostradas, é possível constatar que, uma vez que usa-se controle de versão distribuído em projetos, ganha-se em tempo, organização e facilidade de implementação em equipe, uma vez que quaisquer membros atuantes têm acesso aos arquivos ali contidos. O GIT é uma ferramenta eficiente, pois sua filosofia de gerenciamento de arquivos torna ainda mais rápido e facilitado o andamento de um projeto de grande porte.
47Introdução a sistemas de controle de versões: GIT
4.0. REFERÊNCIAS BIBLIOGRÁFICAS
• GIT. Documentation [online]. 2014. Referência disponível em https://git-scm.com/doc;• William Oliveira [online]. Referência disponível em https://woliveiras.com.br/posts/contribuindo-para-projetos-open-source-no-github-mesmo-sendo-iniciante/• Atlassian BitBucket [online]. Referência disponível em https://bitbucket.org/product
48Introdução ao Arduino: fundamentos e aplicações de microcontroladores
AGRADECIMENTOS
[email protected]@gmail.com