git 101
TRANSCRIPT
![Page 1: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/1.jpg)
git
1
quinta-feira, 19 de maio de 2011
![Page 2: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/2.jpg)
git is...
“Git is a free & open source, distributed version control system designed to handle everything from small to very large projects with speed and efficiency.”
2
quinta-feira, 19 de maio de 2011
![Page 3: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/3.jpg)
quem usa?
3
quinta-feira, 19 de maio de 2011
![Page 4: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/4.jpg)
4
perl
gnome
Qt
RoR
android
fedoradebian
VLCfacebook INdT
Itautec (new)
linux kernel
quinta-feira, 19 de maio de 2011
![Page 5: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/5.jpg)
5
linux kernelalguns números...
quinta-feira, 19 de maio de 2011
![Page 6: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/6.jpg)
6
quinta-feira, 19 de maio de 2011
![Page 7: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/7.jpg)
7
quinta-feira, 19 de maio de 2011
![Page 8: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/8.jpg)
8
quinta-feira, 19 de maio de 2011
![Page 9: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/9.jpg)
9
quinta-feira, 19 de maio de 2011
![Page 10: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/10.jpg)
características
quinta-feira, 19 de maio de 2011
![Page 11: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/11.jpg)
11
rápido
quinta-feira, 19 de maio de 2011
![Page 12: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/12.jpg)
12
simples
quinta-feira, 19 de maio de 2011
![Page 13: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/13.jpg)
escalável
13
quinta-feira, 19 de maio de 2011
![Page 14: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/14.jpg)
distribuído
14
quinta-feira, 19 de maio de 2011
![Page 15: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/15.jpg)
localcentralizadodistribuído
15
quinta-feira, 19 de maio de 2011
![Page 16: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/16.jpg)
local
16
quinta-feira, 19 de maio de 2011
![Page 17: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/17.jpg)
centralizado
17
quinta-feira, 19 de maio de 2011
![Page 18: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/18.jpg)
distribuído
18
quinta-feira, 19 de maio de 2011
![Page 19: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/19.jpg)
git 101
quinta-feira, 19 de maio de 2011
![Page 20: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/20.jpg)
instalação# a partir de agora é no terminal do linux!
# baixar e executar o script de instalação local$ wget http://www.cin.ufpe.br/~astm/git/git.sh
# ubuntu$ sudo apt-get install git-core # fedora$ su; yum install git
quinta-feira, 19 de maio de 2011
![Page 21: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/21.jpg)
git initcria um repositório ou reinicia um existente
quinta-feira, 19 de maio de 2011
![Page 22: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/22.jpg)
git init - exemplo
# cria pasta do projeto$ mkdir ~/ldc-automacao
# muda para essa pasta$ cd ~/ldc-automacao
# inicia o repositório$ git init
quinta-feira, 19 de maio de 2011
![Page 23: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/23.jpg)
git statusmostra o status da pasta de trabalho
quinta-feira, 19 de maio de 2011
![Page 24: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/24.jpg)
quinta-feira, 19 de maio de 2011
![Page 25: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/25.jpg)
git addadiciona arquivos ao index
quinta-feira, 19 de maio de 2011
![Page 26: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/26.jpg)
git add - exemplo #1
# cria arquivo README$ touch README# o adiciona ao index$ git add README
quinta-feira, 19 de maio de 2011
![Page 27: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/27.jpg)
git add - exemplo #2
# baixa o código do LDC 1.0$ wget adrianomelo.com/ldc.tar# extrai os arquivos$ tar -xf ldc.tar
$ git init $ git add .
quinta-feira, 19 de maio de 2011
![Page 28: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/28.jpg)
git rmremove o arquivo da árvore de trabalho e do index
quinta-feira, 19 de maio de 2011
![Page 29: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/29.jpg)
git commitgrava as mudanças no repositório
quinta-feira, 19 de maio de 2011
![Page 30: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/30.jpg)
git commit - exemplo
# faz o commit das últimas alterações$ git commit -m ‘ldc importado’
# faz o commit sem precisar do “git add”$ git commit -am ‘ldc importado’
quinta-feira, 19 de maio de 2011
![Page 31: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/31.jpg)
git logmostra o log dos commits
quinta-feira, 19 de maio de 2011
![Page 32: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/32.jpg)
git log - exemplos
# arquivos criados, renomeados, mudanças..$ git log --summary --oneline
# mostra os commts e a árvore de merges$ git log --oneline --graph --color
quinta-feira, 19 de maio de 2011
![Page 33: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/33.jpg)
git configmodifica as configurações do repositório e globais
quinta-feira, 19 de maio de 2011
![Page 34: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/34.jpg)
git config - exemplo
$ git config --list
$ git config --global user.name “Adriano Melo”$ git config --global user.email \ “[email protected]”
quinta-feira, 19 de maio de 2011
![Page 35: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/35.jpg)
git commit - correção
# corrige informações do último commit$ git commit --amend
quinta-feira, 19 de maio de 2011
![Page 36: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/36.jpg)
git initgit add
git commitgit status
git loggit config
quinta-feira, 19 de maio de 2011
![Page 37: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/37.jpg)
branchesdesenvolvimento em paralelo
quinta-feira, 19 de maio de 2011
![Page 38: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/38.jpg)
ao dar commit...quinta-feira, 19 de maio de 2011
![Page 39: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/39.jpg)
depois de alguns commits..quinta-feira, 19 de maio de 2011
![Page 40: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/40.jpg)
branch == ponteiroquinta-feira, 19 de maio de 2011
![Page 41: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/41.jpg)
novo branch (testing)quinta-feira, 19 de maio de 2011
![Page 42: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/42.jpg)
master em uso (HEAD)quinta-feira, 19 de maio de 2011
![Page 43: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/43.jpg)
testing em uso (HEAD)quinta-feira, 19 de maio de 2011
![Page 44: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/44.jpg)
commit em testingquinta-feira, 19 de maio de 2011
![Page 45: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/45.jpg)
usando master novamente...
quinta-feira, 19 de maio de 2011
![Page 46: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/46.jpg)
commit em masterquinta-feira, 19 de maio de 2011
![Page 47: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/47.jpg)
um branch em git é um arquivoque contém 40 caracteres.
(SHA-1 checksum do commit que ele aponta)
quinta-feira, 19 de maio de 2011
![Page 48: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/48.jpg)
quinta-feira, 19 de maio de 2011
![Page 49: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/49.jpg)
git branchcria, lista e deleta branches
quinta-feira, 19 de maio de 2011
![Page 50: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/50.jpg)
git branch - exemplos
$ git branch # listar branches$ git branch dev # criar branch$ git branch -m dev stable # renomear$ git branch -d stable # remover
quinta-feira, 19 de maio de 2011
![Page 51: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/51.jpg)
git checkoutmuda para o branch especificado
quinta-feira, 19 de maio de 2011
![Page 52: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/52.jpg)
git checkout - exemplo
# cria branch ‘experimental’$ git branch experimental
# muda para o branch$ git checkout experimental
quinta-feira, 19 de maio de 2011
![Page 53: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/53.jpg)
git checkout - exemplo #2
# mostra os últimos commits$ git log --onelinea5eddf9 correcao na gramatica da divisao,ad50ebf seg fault removidodbb2342 doc changes
# vai para o commit dbb2342$ git checkout dbb2342
quinta-feira, 19 de maio de 2011
![Page 54: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/54.jpg)
git mergejunta dois branches
quinta-feira, 19 de maio de 2011
![Page 55: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/55.jpg)
git merge - exemplo$ git checkout -b documentacao
$ touch INSTALL$ git add INSTALL$ git commit -m ‘arquivo INSTALL criado’
$ git checkout master$ git merge documentacao
quinta-feira, 19 de maio de 2011
![Page 56: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/56.jpg)
git rebaseintegrar mudanças de uma branch à ultima versão de
outra
quinta-feira, 19 de maio de 2011
![Page 57: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/57.jpg)
quinta-feira, 19 de maio de 2011
![Page 58: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/58.jpg)
git rebase - exemplo
$ git checkout issue32
# adiciona as mudancas do branch issue32 ao branch master$ git rebase master
quinta-feira, 19 de maio de 2011
![Page 59: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/59.jpg)
git branchgit checkout
git mergegit rebase
quinta-feira, 19 de maio de 2011
![Page 60: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/60.jpg)
remotetrabalhando de forma colaborativa
quinta-feira, 19 de maio de 2011
![Page 61: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/61.jpg)
tarefinha:
1. criar conta no github.com
2. dar fork no repositório:github.com/adrianomelo/c-compiler-in-c/
quinta-feira, 19 de maio de 2011
![Page 62: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/62.jpg)
git clone“clona” um repositório
quinta-feira, 19 de maio de 2011
![Page 63: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/63.jpg)
git clone - exemplo
# indo para a pasta do usuário$ cd ~# clonando o repositório$ git clone https://[email protected]/astm/c-compiler-in-c.git
# indo para a pasta do projeto$ cd c-compiler-in-c
quinta-feira, 19 de maio de 2011
![Page 64: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/64.jpg)
git pushatualiza repositório remoto com as mudanças locais
quinta-feira, 19 de maio de 2011
![Page 65: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/65.jpg)
git push - exemplo #1
# forçando uma modificação$ echo “Testando repositorio” >> README$ git commit -am ‘teste de mudanca’
# escrevendo as mudanças no repositório$ git push origin master
quinta-feira, 19 de maio de 2011
![Page 66: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/66.jpg)
git push - exemplo #2
# deletando a branch remota issue30$ git push origin :issue30
# associar um branch local a um remoto$ git checkout -b issue32tryfix$ git checkout --track origin/issue32$ git push origin issue32
quinta-feira, 19 de maio de 2011
![Page 67: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/67.jpg)
git fetchatualiza o branch remoto especificado
quinta-feira, 19 de maio de 2011
![Page 68: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/68.jpg)
git fetch - exemplo #1
# clonando o repositório c-compiler-in-c$ git clone https://[email protected]/astm/c-compiler-in-c.git
# atualizando o branch origin/master$ git fetch origin# merge o origin/master com o master$ git merge origin/master
quinta-feira, 19 de maio de 2011
![Page 69: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/69.jpg)
git fetch - exemplo #2# $P = prefixo, $L = repositório$ P=git://git.kernel.org/pub/scm/$ L=linux/kernel/git/stable/linux-2.6.35.y.git# clonando o repositório 2.6.35 do kernel$ git clone $P$L# depois de algumas horas.....$ git fetch origin master# mudanças realizadas, comparando com HEAD$ git diff FETCH_HEAD..HEAD# diferença dos dois últimos commits..$ git diff FETCH_HEAD..FETCH_HEADˆ
quinta-feira, 19 de maio de 2011
![Page 70: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/70.jpg)
outros comandos..
quinta-feira, 19 de maio de 2011
![Page 71: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/71.jpg)
git bisectfaz uma busca binária para achar o commit que um bug
foi introduzido (regressão)
quinta-feira, 19 de maio de 2011
![Page 72: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/72.jpg)
git bisect - exemplo$ git bisect start$ git bisect bad$ git bisect good v2.6.13-rc2Bisecting: 675 revisions left to test after this
$ git bisect goodBisecting: 337 revisions left to test after this
$ git bisect reset
quinta-feira, 19 de maio de 2011
![Page 73: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/73.jpg)
git resetlimpa o HEAD para o estado especificado
quinta-feira, 19 de maio de 2011
![Page 74: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/74.jpg)
git reset - exemplo
$ touch gui.java$ git add gui.java
$ git reset
quinta-feira, 19 de maio de 2011
![Page 75: git 101](https://reader030.vdocuments.net/reader030/viewer/2022032700/55d74ba8bb61eb6f488b45be/html5/thumbnails/75.jpg)
site:cinlug-br.org
twitter:twitter.com/cinlug
lista:http://groups.google.com/group/cinlug/
quinta-feira, 19 de maio de 2011