Upload
evandro-da-silva-amparo
View
63
Download
1
Embed Size (px)
Citation preview
GitSistema de controle de versão distribuído
Evandro da Silva Amparoblog.evandroamparo.com
Resumo
Sistemas de controle de versãoCentralizado x distribuído
SVN x GitWorkflows
GitHubFerramentas visuais
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
Sistemas de controle de versão
Como?
Mantendo histórico de revisões
Sistemas de controle de versão
Como?Facilitando a colaboração
Sistemas de controle de versão
Como?
Branches - versões em paralelo
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.
Conceitos
Revisão
Cada uma das alterações feitas num arquivo ou repositório.
Conceitos
Cópia de trabalho
Uma cópia do repositório onde são feitas as modificações.
Conceitos
Branch
É uma ramificação do repositório que pode evoluir de maneira independente.
Conceitos
Master
É o branch principal.
Conceitos
Head
É uma referência para o commit atual(última revisão)
Conceitos
Origin
Nome dado ao repositório remoto "primário", onde devem ser feitas as sincronizações.
Conceitos
Staging areaÁrea intermediária
Adicionar alterações ao index e depois comitar
Adicionar alterações ao index e comitar ao
mesmo tempo
Centralizado
Distribuído
SVN x Git
TrunkCheckoutCommitUpdateRevert
Commits/branches/tags remotos
MasterClone
Commit/PushUpdate/PullCheckout
Commits/branches/tags locais
Workflows
Configurando o Git
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
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"
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
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
Ferramentas visuais
GitHub for WindowsSource TreeTortoiseGitSmartGitHg
git-colaGit Extensions
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