controle de versões com o git - myhro blog• projetos imensos, como o próprio kernel do linux (14...

67
Controle de Versões com o Git #gitday - 10/09/2011 Slides por Tiago "Myhro" Ilieve

Upload: others

Post on 22-May-2020

14 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Controle de Versões com o Git

#gitday - 10/09/2011

Slides por Tiago "Myhro" Ilieve

Page 2: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

O que é versionamento de código?

• É manter diversas versões dos seus arquivos, de forma que você possa acessar o conteúdo dos mesmos exatamente como era em qualquer ponto do tempo.

Page 3: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

O que é versionamento de código?

• É manter diversas versões dos seus arquivos, de forma que você possa acessar o conteúdo dos mesmos exatamente como era em qualquer ponto do tempo.

• Você pode adicionar ou remover partes e até mesmo os próprios arquivos, sem ter de se preocupar com o que estas mudanças poderão acarretar.

Page 4: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

O que é versionamento de código?

• É manter diversas versões dos seus arquivos, de forma que você possa acessar o conteúdo dos mesmos exatamente como era em qualquer ponto do tempo.

• Você pode adicionar ou remover partes e até mesmo os próprios arquivos, sem ter de se preocupar com o que estas mudanças poderão acarretar.

• Algo parecido com uma "máquina do tempo dos CTRL+Z"

Page 5: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Por que o Git?

• É rápido, muito rápido!

Page 6: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Por que o Git?

• É rápido, muito rápido!• Tudo é feito localmente e se necessário pode-se adotar tanto o modelo centralizado quanto distribuído para compartilhamento de código.

Page 7: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Por que o Git?

• É rápido, muito rápido!• Tudo é feito localmente e se necessário pode-se adotar tanto o modelo centralizado quanto distribuído para compartilhamento de código.

• Neste caso, cada pessoa com acesso ao repositório tem uma cópia local e completa do mesmo.

Page 8: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Por que o Git?

• É rápido, muito rápido!• Tudo é feito localmente e se necessário pode-se adotar tanto o modelo centralizado quanto distribuído para compartilhamento de código.

• Neste caso, cada pessoa com acesso ao repositório tem uma cópia local e completa do mesmo.

• Praticamente todas as mudanças podem ser desfeitas (a possibilidade de se perder algo é ínfima).

Page 9: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Por que o Git?

• É largamente utilizado, estável e seguro.

Page 10: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Por que o Git?

• É largamente utilizado, estável e seguro.• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos.

Page 11: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Por que o Git?

• É largamente utilizado, estável e seguro.• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos.

• Cresceu em popularidade, grande parte graças ao GitHub, e hoje é possivelmente o VCS mais usado no mundo.

Page 12: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Por que o Git?

• É largamente utilizado, estável e seguro.• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos.

• Cresceu em popularidade, grande parte graças ao GitHub, e hoje é possivelmente o VCS mais usado no mundo.

• Não é muito complicado, basta entender bem seus conceitos e se acostumar com a sintaxe dos seus comandos.

Page 13: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

História do Git

• É um projeto recente, tendo sido criado em 2005 por Linus Torvalds e se popularizado a partir de 2008.

Page 14: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

História do Git

• É um projeto recente, tendo sido criado em 2005 por Linus Torvalds e se popularizado a partir de 2008.

• Não era fácil de ser utilizado no começo, mas sua usabilidade evoluiu muito graças a Junio Hamano, atual mantenedor do Git.

Page 15: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

História do Git

• É um projeto recente, tendo sido criado em 2005 por Linus Torvalds e se popularizado a partir de 2008.

• Não era fácil de ser utilizado no começo, mas sua usabilidade evoluiu muito graças a Junio Hamano, atual mantenedor do Git.

• Foi criado após os criadores do BitKeeper revogarem a licença qual permitia sua utilização gratuita.

Page 16: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

História do Git

• É um projeto recente, tendo sido criado em 2005 por Linus Torvalds e se popularizado a partir de 2008.

• Não era fácil de ser utilizado no começo, mas sua usabilidade evoluiu muito graças a Junio Hamano, atual mantenedor do Git.

• Foi criado após os criadores do BitKeeper revogarem a licença qual permitia sua utilização gratuita.

• O GitHub foi peça chave para sua popularização e hoje hospeda quase três milhões de repositórios de quase um milhão de desenvolvedores.

Page 17: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

GitHub - Social Coding

• É como um "Facebook para programadores". Você pode seguir outras pessoas, acompanhar suas atividades e até mesmo colaborar com seus projetos.

Page 18: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

GitHub - Social Coding

• É como um "Facebook para programadores". Você pode seguir outras pessoas, acompanhar suas atividades e até mesmo colaborar com seus projetos.

• Você pode criar infinitos repositórios (até 300MB de disco) gratuitos, desde que seus projetos sejam Open Source.

Page 19: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

GitHub - Social Coding

• É como um "Facebook para programadores". Você pode seguir outras pessoas, acompanhar suas atividades e até mesmo colaborar com seus projetos.

• Você pode criar infinitos repositórios (até 300MB de disco) gratuitos, desde que seus projetos sejam Open Source.

• Caso tenha necessidade de utilizar repositórios privados, há planos de assinaturas mensais.

Page 20: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

GitHub - Social Coding

• É como um "Facebook para programadores". Você pode seguir outras pessoas, acompanhar suas atividades e até mesmo colaborar com seus projetos.

• Você pode criar infinitos repositórios (até 300MB de disco) gratuitos, desde que seus projetos sejam Open Source.

• Caso tenha necessidade de utilizar repositórios privados, há planos de assinaturas mensais.

• O "GitHub Firewall" está disponível para empresas que não querem ou não podem armazenar seus projetos externamente.

Page 21: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Conceitos básicos do Git

• Repositório

• Índice

• Área de Trabalho

Page 22: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Comando: git add <arquivo>

• Repositório

• Índice

• Área de Trabalho

Page 23: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Comando: git commit -m "Mensagem"

• Repositório

• Índice

• Área de Trabalho

Page 24: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Comando*: git rm --cached <arquivo>

• Repositório

• Índice

• Área de Trabalho

* Se ainda não há nenhum commit no repositório.

Page 25: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Comando*: git reset HEAD <arquivo>

• Repositório

• Índice

• Área de Trabalho

* Retorna ao estado anterior sem descartar alterações.

Page 26: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Comando: git checkout -- arquivo

• Repositório

• Índice

• Área de Trabalho

Page 27: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Comando: git checkout -- arquivo

• Repositório

• Índice

• Área de Trabalho

Page 28: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

• O Git não foi desenvolvido para Windows, mas roda nele perfeitamente.

Page 29: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

• O Git não foi desenvolvido para Windows, mas roda nele perfeitamente.

• Em distribuições Linux basta instalá-lo com o gerenciador de pacotes, procurando por "git" ou "git-core".

Page 30: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

• O Git não foi desenvolvido para Windows, mas roda nele perfeitamente.

• Em distribuições Linux basta instalá-lo com o gerenciador de pacotes, procurando por "git" ou "git-core".

• Antigamente, "git" respondia pelo "GNU Interactive Tools".

Page 31: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

• O Git não foi desenvolvido para Windows, mas roda nele perfeitamente.

• Em distribuições Linux basta instalá-lo com o gerenciador de pacotes, procurando por "git" ou "git-core".

• Antigamente, "git" respondia pelo "GNU Interactive Tools".• No Ubuntu 10.10 ou mais recente:

apt-get install git

Page 32: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

• O Git não foi desenvolvido para Windows, mas roda nele perfeitamente.

• Em distribuições Linux basta instalá-lo com o gerenciador de pacotes, procurando por "git" ou "git-core".

• Antigamente, "git" respondia pelo "GNU Interactive Tools".• No Ubuntu 10.10 ou mais recente:

apt-get install git

• Aqui utilizaremos como base o tutorial de instalação do Git para Windows feito pelo GitHub.

Page 33: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

Page 34: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

Page 35: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

Page 36: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

Page 37: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

Page 38: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

Page 39: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

Page 40: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

Page 41: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

Page 42: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Instalação do Git

• Após a instalação, o passo final antes de começar a fazer qualquer coisa é definir seu nome e e-mail.

git config --global user.name "Joao Zinho"git config --global user.email [email protected]

Page 43: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

O início:

git init

Page 44: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Seu melhor amigo:

git status

Page 45: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Adicionando ao índice:

git add <arquivo>

Page 46: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Removendo arquivo do índice*:

git rm --cached <arquivo>

Page 47: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Gravando no repositório:

git commit -m "Mensagem"

Page 48: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Consultando o histórico:

git log

Page 49: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Revertendo alterações*:

git checkout -- <arquivo>ou

git checkout <sha1> <arquivo>

Page 50: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Retornando ao estado anterior:

git reset HEAD <arquivo>

Page 51: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Visualizando diferenças:

git diff <arquivo>ou

git diff <sha1> <arquivo>

Page 52: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Ignorando arquivos:

O utilíssimo ".gitignore"

Page 53: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Listando branches:

git branch

Page 54: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Criando branches:

git branch novo_nomeou

git checkout -b novo_nomeou

git checkout -b novo_nome <sha1>

Page 55: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Navegando entre branches:

git checkout nome

Page 56: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Apagando branches:

git branch -d nomeou

git branch -D nome

Page 57: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Mesclando branches:

git merge outro_branchou

git merge outro_branch --squash

Page 58: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Tornando o histórico linear*:

git rebase outro_branch

Page 59: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Repositórios remotos

• O Git é um sistema de versionamento distribuído. Desta forma, podem haver várias cópias completas do mesmo repositório em computadores diferentes.

Page 60: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Repositórios remotos

• O Git é um sistema de versionamento distribuído. Desta forma, podem haver várias cópias completas do mesmo repositório em computadores diferentes.

• O SSH é o protocolo mais utilizado para enviar e receber dados do repositório.

Page 61: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Repositórios remotos

• O Git é um sistema de versionamento distribuído. Desta forma, podem haver várias cópias completas do mesmo repositório em computadores diferentes.

• O SSH é o protocolo mais utilizado para enviar e receber dados do repositório.

• Para isto precisamos criar um par de chaves criptográficas, sendo uma pública e outra privada.

Page 62: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Repositórios remotos

• O Git é um sistema de versionamento distribuído. Desta forma, podem haver várias cópias completas do mesmo repositório em computadores diferentes.

• O SSH é o protocolo mais utilizado para enviar e receber dados do repositório.

• Para isto precisamos criar um par de chaves criptográficas, sendo uma pública e outra privada.

• Você não precisa de um servidor. Seu repositório remoto pode ser simplesmente um sistema de arquivos qualquer.

Page 63: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Criando chaves criptográficas

ssh-keygen -t rsa -C [email protected]

Page 64: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Adicionando o repositório remoto:

git remote add origin [email protected]:joaozin/repositorio.git

Enviando:

git push origin master

Page 65: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Atualizando sua cópia local:

git fetch originou

git pull origin master

Page 66: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Apagando repositório remoto:

git remote rm origin

Page 67: Controle de Versões com o Git - Myhro Blog• Projetos imensos, como o próprio Kernel do Linux (14 mi de linhas), utilizam o Git para versionar seus códigos. • Cresceu em popularidade,

Referências

AkitaOnRails.com: Começando com o Git -http://akitaonrails.com/2010/08/17/screencast-comecando-com-gitCNN: At 20, Linux is invisible, ubiquitous -http://edition.cnn.com/2011/TECH/gaming.gadgets/08/25/linux.20/index.htmlMyhro Blog: Git para principiantes -http://blog.myhro.info/2011/08/git-para-principiantes/Pro Git - http://progit.org/book/Tech Talk: Linus Torvalds on git -http://youtube.com/watch?v=4XpnKHJAok8Why Git is Better than X - http://whygitisbetterthanx.com/