24
Git Sistema de controle de versão distribuído Evandro da Silva Amparo blog.evandroamparo.com

Git e Github

Embed Size (px)

Citation preview

Page 1: Git e Github

GitSistema de controle de versão distribuído

Evandro da Silva Amparoblog.evandroamparo.com

Page 2: Git e Github

Resumo

Sistemas de controle de versãoCentralizado x distribuído

SVN x GitWorkflows

GitHubFerramentas visuais

Page 3: Git e Github

Sistemas de controle de versão

Por quê?

Evitar que um desenvolvedor sobrescreva o código de outro

Desenvolver versões em paralelo

Saber o que foi alterado, quando e por quem

Recuperar código de uma versão anterior

E muito mais

Page 4: Git e Github

Sistemas de controle de versão

Como?

Mantendo histórico de revisões

Page 5: Git e Github

Sistemas de controle de versão

Como?Facilitando a colaboração

Page 6: Git e Github

Sistemas de controle de versão

Como?

Branches - versões em paralelo

Page 7: Git e Github

Conceitos

Repositório

Conjunto de arquivos e de todo o histórico de modificações de um projeto.

Tem a capacidade de "se lembrar" de todas as alterações gravadas nele.

Page 8: Git e Github

Conceitos

Revisão

Cada uma das alterações feitas num arquivo ou repositório.

Page 9: Git e Github

Conceitos

Cópia de trabalho

Uma cópia do repositório onde são feitas as modificações.

Page 10: Git e Github

Conceitos

Branch

É uma ramificação do repositório que pode evoluir de maneira independente.

Page 11: Git e Github

Conceitos

Master

É o branch principal.

Page 12: Git e Github

Conceitos

Head

É uma referência para o commit atual(última revisão)

Page 13: Git e Github

Conceitos

Origin

Nome dado ao repositório remoto "primário", onde devem ser feitas as sincronizações.

Page 14: Git e Github

Conceitos

Staging areaÁrea intermediária

Adicionar alterações ao index e depois comitar

Adicionar alterações ao index e comitar ao

mesmo tempo

Page 15: Git e Github
Page 16: Git e Github

Centralizado

Page 17: Git e Github

Distribuído

Page 18: Git e Github

SVN x Git

TrunkCheckoutCommitUpdateRevert

Commits/branches/tags remotos

MasterClone

Commit/PushUpdate/PullCheckout

Commits/branches/tags locais

Page 19: Git e Github

Workflows

Configurando o Git

$ git config --global user.name "John Doe"

$ git config --global user.email [email protected]

Page 20: Git e Github

Workflows

1 - Manter histórico de alterações

$ git init

$ git add readme.txt

$ git commit -m "initial project version"

$ git log

$ (editar readme.txt)

$ git diff

$ git add readme.txt

$ git commit -m "readme"

Page 21: Git e Github

Workflows

2 - Branch & merge

$ git branch v2.0 # cria o branch

$ git checkout v2.0 # altera o branch atual

$ (editar readme.txt)

$ git add readme.txt

$ git commit -m "readme 2.0"

$ git checkout master

$ git merge v2.0

$ git branch -d v2.0 # exclui o branch

Page 22: Git e Github

Workflows

3 - Usando um repositório remoto no GitHub

$ git clone https://github.com/tecsystem/RubyLab.git

$ (fazer alterações locais)

$ git pull # receber atualizações

$ gut push # enviar atualizações

Page 24: Git e Github

Links● Conceitos Básicos de Controle de Versão de Software —

Centralizado e Distribuído● Git para Usuários do Subversion, Parte 1 | Parte 2● Aprendendo Git para quem conhece Subversion● Começando com Git (para usuários de SVN ou CVS)● Git Svn Crash Course● Iniciando no GIT – Parte 1 | Parte 2● Key Git Concepts● GitCasts : Git Screencasts● Git Immersion● git - guia prático● Git Magic● Git Tutorials● Git Workflows● Git Reference● GitGuys