Projeto

Geral

Perfil

Gitintro » Histórico » Versão 2

Mauricio Luiz Viani, 28/06/2016 10:13 h

1 1 Mauricio Luiz Viani
h1. Guia básico de Git
2 1 Mauricio Luiz Viani
3 1 Mauricio Luiz Viani
* [[gitinstall|Instalação]]
4 1 Mauricio Luiz Viani
* [[gitcomandos|Comandos básicos]]
5 1 Mauricio Luiz Viani
* [[gitclone|Clonando o repositório do Expresso Livre]]
6 1 Mauricio Luiz Viani
7 1 Mauricio Luiz Viani
h2. Conceitos
8 1 Mauricio Luiz Viani
9 1 Mauricio Luiz Viani
* *VCS (Sistema de controle de versões)* - Sistema que grava histórico de alterações de um arquivo, ou de um conjunto de arquivos, e possibilita revertê-los para um estado anterior. 
10 1 Mauricio Luiz Viani
* *CVCS (Sistema de controle de versões centralizado)* - Um único servidor contendo todos os arquivos versionados e vários clientes fazendo check out. A administração é facilitada. Porém um único ponto de falha nesse servidor pode significar a perda de todo o histórico de versões (com exceção da versão local atual). _*SVN, CVS, etc...*_ 
11 2 Mauricio Luiz Viani
* *DVCS (Sistema de controle de versão distribuído)* - O cliente não faz check out da última versão dos arquivos do servidor, ele faz uma cópia de todo o repositório para sua máquina local, ou seja, se houver algum problema com o servidor remoto, existe um repositório local de backup. A administração das atividades é mais complexa. _*Git.*_ 
12 1 Mauricio Luiz Viani
13 1 Mauricio Luiz Viani
h2. Termos relevantes
14 1 Mauricio Luiz Viani
15 1 Mauricio Luiz Viani
* **Snapshot** - estado de um projeto (arquivos alterados em um commit com relação ao snapshot anterior);
16 1 Mauricio Luiz Viani
* **Objeto commit** - armazena as informações do snapshot 
17 1 Mauricio Luiz Viani
* **Branch** - ramo de desenvolvimento. Aponta para um objeto commit que será base para o desenvolvimento do branch. Cada branch representa uma versão do projeto, e pode-se seguir uma linha de desenvolvimento a partir de cada branch;
18 1 Mauricio Luiz Viani
* **Fork** - é uma bifurcação, uma cópia de um projeto existente para seguir em nova direção;
19 1 Mauricio Luiz Viani
* **Merge** - é a capacidade de incorporar alterações do git, onde acontece uma junção dos branches;
20 1 Mauricio Luiz Viani
* **Issue** - é um ticket/atividade que pode descrever uma nova funcionalidade, a correção de um bug, ou uma tarefa que deverá ser executada dentro do projeto;
21 1 Mauricio Luiz Viani
* **Origin** - refere-se ao servidor remoto adicionado a um repositório 
22 1 Mauricio Luiz Viani
* **Origin/Nome_branch** - refere-se às informações do branch do servidor remoto 
23 1 Mauricio Luiz Viani
24 1 Mauricio Luiz Viani
h2. Git básico
25 1 Mauricio Luiz Viani
26 1 Mauricio Luiz Viani
> Apesar dos comandos serem similares ao SVN, a forma com que o Git trabalha com as informações é diferente.
27 1 Mauricio Luiz Viani
> Evite comparações entre as ferramentas para facilitar a compreensão.
28 1 Mauricio Luiz Viani
29 1 Mauricio Luiz Viani
* Git trabalha com os dados em snapshots. Para cada alteração ele salva em um objeto commit o estado de todo o projeto e cria uma referência para o estado anterior;
30 1 Mauricio Luiz Viani
* Git permite trabalhar offline com o repositório local. Assim que a conexão estiver habilitada, faz-se o upload para o repositório remoto;
31 1 Mauricio Luiz Viani
* Git faz checksum com SHA1 e detecta arquivos corrompidos evitando a perda de dados em trânsito e garantindo a integridade. 
32 1 Mauricio Luiz Viani
* Git geralmente só adiciona informações. É complexo, após o commit das informações, reverter o que foi alterado; 
33 1 Mauricio Luiz Viani
* Git tem 3 estados nos quais os arquivos podem estar:
34 1 Mauricio Luiz Viani
35 1 Mauricio Luiz Viani
 * **Commited**: arquivos seguramente armazenados na base de dados local do seu repositório git. 
36 1 Mauricio Luiz Viani
 * **Modified**: arquivos alterados mas não commitados na base de dados local. 
37 1 Mauricio Luiz Viani
 * **Staged**: arquivos marcados como alterados e que serão enviados no commit do próximo snapshot. 
38 1 Mauricio Luiz Viani
39 1 Mauricio Luiz Viani
* Fluxo básico do Git:
40 1 Mauricio Luiz Viani
41 1 Mauricio Luiz Viani
 # Alterar os arquivos no seu diretório de trabalho; 
42 1 Mauricio Luiz Viani
 # Colocar os arquivos na área de staging (comunica que serão commitados no próximo snapshot); 
43 1 Mauricio Luiz Viani
 # Commitar os arquivos e salvar as informações na base de dados do repositório local.
44 1 Mauricio Luiz Viani
45 1 Mauricio Luiz Viani
h2. Ramificação
46 1 Mauricio Luiz Viani
47 1 Mauricio Luiz Viani
* Um branch é um ramo de desenvolvimento isolado e sempre aponta para um objeto commit. O branch padrão do Git é o master. 
48 1 Mauricio Luiz Viani
* Quando um branch é criado, ele aponta para o mesmo objeto commit do branch do qual foi derivado. Por exemplo: se quando criado um branch, o branch ativo era o master, esse novo branch aponta para o mesmo objeto commit que o branch master estava apontando.
49 1 Mauricio Luiz Viani
50 1 Mauricio Luiz Viani
h2. Servidor remoto
51 1 Mauricio Luiz Viani
52 1 Mauricio Luiz Viani
* Um repositório remoto é chamado de bare e não possui diretório de trabalho. Apenas guarda as informações, objetos e referências. A partir dele são feitos os clones locais (diretórios de trabalho). 
53 1 Mauricio Luiz Viani
54 1 Mauricio Luiz Viani
> *Lembre-se*: As alterações locais só serão conhecidas pelos outros colaboradores se forem enviadas para o servidor remoto.
55 1 Mauricio Luiz Viani
56 1 Mauricio Luiz Viani
h2. Fontes de referência utilizadas na composição deste guia
57 1 Mauricio Luiz Viani
58 1 Mauricio Luiz Viani
* http://git-scm.com 
59 1 Mauricio Luiz Viani
* http://git-scm.com/book/pt-br/
60 1 Mauricio Luiz Viani
* http://rogerdudler.github.com/git-guide/index.pt_BR.html