primeiros passos - git

Post on 18-Nov-2014

3.417 Views

Category:

Software

11 Downloads

Preview:

Click to see full reader

DESCRIPTION

Treinamento básico sobre GIT

TRANSCRIPT

Instrutor

Stefan Horochovec• Arquiteto de Software;• Adobe Community Manager;• Oreilly Community Author;• BlackBerry Developer Manager;• Professor/Autor/Palestrante;• 13 anos de experiência no desenvolvimento WEB;• 5 anos de experiência no desenvolvimento Mobile;• 7 anos como líder de grupo de desenvolvedores;• Blog: http://www.horochovec.com.br/• Twitter: @horochovec

Agenda• Histórico;• Distributed Version Control;• Instalação

• Windows;• Linux;

• Configurações;• Command Line

• git init;• git add;• git commit;• git log;• git status;• git diff;• git rm;• git mv;• git checkout;• git reset;• git commit –amend;

• .gitignore;• Comunicação remota;

HistóricoDe onde viemos e para onde estamos caminhando

Histórico

• Source Code Control System – SCCS• 1972;• Código fechado;• Distribuído gratuitamente com Unix;• O versionamento era baseado em SNAPSHOTs das alterações do arquivo.

Para obter versões recentes, o Diff das alterações eram aplicados na ordem cronológica do versionamento, uma operação lenta em arquivos com grandes números de modificações;

• Revision Control System – RCS• 1982;• Open-source;• Cross-plataform;• O versionamento era baseado em manter disponível a última alteração

do arquivo. Para obter versões antigas, o PATH das alterações era aplicado de forma retroativa ao último arquivo versionado, garantindo assim uma maior velocidade comparando com o SCCS;

Histórico

• Concurrent Version System – CVS• 1986 - 1990;• Open-source;• Criado o conceito de repositório;• Trabalhava apenas com arquivos textos;• Múltiplas pessoas poderiam trabalhar no mesmo arquivo;

• Apache Subversion – SVN• 2000;• Open-source;• Versionamento de arquivos binários;• O versionamento era baseado em diretórios, e não em arquivos.

Surge o conceito de REVISION;• Uma REVISION baseava que determinados arquivos foram

alterados naquele “commit”.

Histórico

• Git – Git• 2005;• Criado por Linus Trovalds;• Distributed Version Control;• Mais rápido que outros SCM (até 100x mais);• Utilizado por empresas como:

• Adobe;• Apache Software Foundation;• Atlassian (JIRA, Confluence);• BlackBerry;• Globo.com;• Google;• Petrobras;• Rede Globo;• Oracle;

Distributed Version ControlNova filosofia para controle de versões

Distributed Version Control

• Filosofia anterior• Único repositório central contendo uma versão centralizada;• Cópias locais do repositório central com constantes check-outs

para sincronização;

• Nova filosofia• Não existe o conceito de um único repositório;• Alterações de código são mantidas em “change sets”;• O foco muda para controle de change sets entre repositórios;

Arquitetura GIT

Arquitetura GIT

• Modelo SVN

Workspace

Repositório

Commit Check-out

Arquitetura GIT

• Modelo GIT

Staging Index

Repositório

Add’s

Fetch

Workspace

Commit

Instalando GITWindows

Instalação - Windows

Instalação - Windows

Instalação - Windows

Instalação - Windows

Instalação - Windows

Instalação - Windows

Instalação - Windows

Instalação - Windows

Instalação - Windows

Instalação - Windows

Instalação - Windows

Instalando GITLinux

Instalação - Linux

Instalação - Linux

Instalação - Linux

Instalação - Linux

Configuração

Configuração

• Globais (ou de sistema)• Path de instalação\etc\gitconfig• “git config --system”

• Por usuário• Diretório de usuário\.gitconfig• “git config --global”

• Por projeto• Diretório do projeto\.git\config• “git config”

Configuração

• Informações pessoais

Configuração

• Informações pessoais

Command Line

git initInicia a estrutura de diretórios para que o git efetue o tracking em um determinado diretório.

git init

git addCom o comando “add”, o git irá verificar todas as alterações feitas a partir do seu diretório e irá adicioná-las ao tracking de alterações.

git add

git add

git commitNesse momento o git adiciona em seu repositório local as alterações feitas.

git commit

git logPossibilita a visualização do histórico de commits em seu repositório.

git log

git log

git statusVisualiza a lista de alterações desde o último commit.

git status

git status

git status

git status

git status

git status

git status

git status

git status

git status

git diffVisualizando as alterações feitas nos arquivos.

git diff

git diff

git diff

git diff

git diff

git rmRemovendo arquivos de nossos repositórios.

git rm

git rm

git rm

git rm

git rm

git mvRenomeando/Movendo arquivos em nosso repositório.

git mv

git mv

git mv

git checkoutDesfazendo alterações.

git checkout

git checkout

git checkout

git resetDesfazendo alterações no staging index.

git reset

git reset

git commit --amendAlterando o último commit.

git commit --amend

git commit --amend

git commit --amend

.gitignoreIgnorando arquivos

git ignore

git ignore

git ignore

Comunicação remotaPush, fetchs, merges e forks

Comunicação remota

Servidor Remoto

Computador Local

Commit 1 Commit 2 Commit 3master

Comunicação remota

Servidor Remoto

Computador Local

Commit 1 Commit 2 Commit 3

push

master

Comunicação remota

Servidor Remoto

Computador Local

Commit 1 Commit 2 Commit 3

push

master

Commit 1 Commit 2 Commit 3master

Comunicação remota

Servidor Remoto

Computador Local

Commit 1 Commit 2 Commit 3

push

master

Commit 1 Commit 2 Commit 3master

Commit 1 Commit 2 Commit 3origin/master

Comunicação remota

Servidor Remoto

Computador Local

Commit 1 Commit 2 Commit 3master

Commit 1 Commit 2 Commit 3master

Commit 1 Commit 2 Commit 3origin/master

Commit 4

Comunicação remota

Servidor Remoto

Computador Local

Commit 1 Commit 2 Commit 3master

Commit 1 Commit 2 Commit 3master

Commit 1 Commit 2 Commit 3origin/master

Commit 4

fetch

Comunicação remota

Servidor Remoto

Computador Local

Commit 1 Commit 2 Commit 3master

Commit 1 Commit 2 Commit 3master Commit 4

fetch

Commit 1 Commit 2 Commit 3origin/master Commit 4

Comunicação remota

Servidor Remoto

Computador Local

master

Commit 1 Commit 2 Commit 3master Commit 4

mergeCommit 1 Commit 2 Commit 3origin/master Commit 4

Commit 1 Commit 2 Commit 3 Commit 4

Real World!Criando um projeto Java e um repositório git.

Real World – Projeto Java

Real World – Projeto Java

Real World – Projeto Java

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World – Repositório Git

Real World!Fork de projetos

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Real World – Fork

Obrigado“O talento vence jogos, mas só o trabalho em equipe ganha campeonatos.” – Michael Jordan

top related