O que é o GIT?
Sistema de controle de versão distribuído, open source, projetado para ser rápido e eficiente.
Como surgiu?
Criado por Linus Torvalds para substitiur o BitKeeper no gerenciamento os fontes do Linux.
Características necessárias:
- Distribuído
- Rápido
- Confiável
Completamente distribuído
Significa que:
- Tudo é rápido
- Cada clone é um backup
- Funciona offline
Não precisa de rede para:
- Diff
- Ver o histórico do arquivo
- Fazer commit
- Merge de branches
- Obter outra versão do arquivo
- Trocar de branch
Branch barato
$ time git checkout -b novoBranch
Switched to a new branch 'novoBranch'
real 0m0.389s
user 0m0.093s
sys 0m0.265s
$ time cp -Rf expressolivre/ r2
real 0m39.840s
user 0m0.531s
sys 0m6.062s
Confiável
Hash SHA-1 de 40 caracteres hexadecimais
jQuery Test
GIT
SVN
Clone/Checkout
14.2
17.0
Size
7.1M
6.2M
Log
0.07
2.62
34x
Diff
0.01
3.50
318x
Commit
1.727
5.509
3.2x
Commit grande
6.49
45.27
7x
Git é pequeno
Git
Hg
Bzr
SVN
Repositório
24M
34M
45M
Diretório completo
43M
53M
64M
61M
*clones do projeto Django
Qualquer tipo de Workflow
Workflow estilo Subversion
Workflow com gerente de integração
Workflow com ditador e tenentes
Git é o novo padrão
- Android
- Apache Software Foundation
- Debian
- Drupal
- Eclipse
- Gnome
- KDE
- Kernel Linux
- PHP
- PostgreSQL
- Ruby on Rail
$ git config --global user.name "Claudionei Santos"
$ git config --global user.email claudionei_xd17@bol.com.br
git clone https://github.com/angular/angular-phonecat.git
Review de comandos
- git init
- git clone
- git add
- git status
- git commit
- git branch
- git checkout
- git merge
- git remote
- git push
- git fetch
- git pull
- git log