• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
git 101
 

git 101

on

  • 629 views

Palestra apresentada no I Workshop de Software LIvre do Centro de Informática http://cinlug-br.org

Palestra apresentada no I Workshop de Software LIvre do Centro de Informática http://cinlug-br.org

Statistics

Views

Total Views
629
Views on SlideShare
629
Embed Views
0

Actions

Likes
1
Downloads
3
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    git 101 git 101 Presentation Transcript

    • git 1quinta-feira, 19 de maio de 2011
    • 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.” 2quinta-feira, 19 de maio de 2011
    • quem usa? 3quinta-feira, 19 de maio de 2011
    • fedora debian gnome perl linux kernel RoR android Itautec (new) Qt facebook VLC INdT 4quinta-feira, 19 de maio de 2011
    • linux kernel alguns números... 5quinta-feira, 19 de maio de 2011
    • 6quinta-feira, 19 de maio de 2011
    • 7quinta-feira, 19 de maio de 2011
    • 8quinta-feira, 19 de maio de 2011
    • 9quinta-feira, 19 de maio de 2011
    • característicasquinta-feira, 19 de maio de 2011
    • rápido 11quinta-feira, 19 de maio de 2011
    • simples 12quinta-feira, 19 de maio de 2011
    • escalável 13quinta-feira, 19 de maio de 2011
    • distribuído 14quinta-feira, 19 de maio de 2011
    • local centralizado distribuído 15quinta-feira, 19 de maio de 2011
    • local 16quinta-feira, 19 de maio de 2011
    • centralizado 17quinta-feira, 19 de maio de 2011
    • distribuído 18quinta-feira, 19 de maio de 2011
    • git 101quinta-feira, 19 de maio de 2011
    • 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 gitquinta-feira, 19 de maio de 2011
    • git init cria um repositório ou reinicia um existentequinta-feira, 19 de maio de 2011
    • git init - exemplo # cria pasta do projeto $ mkdir ~/ldc-automacao # muda para essa pasta $ cd ~/ldc-automacao # inicia o repositório $ git initquinta-feira, 19 de maio de 2011
    • git status mostra o status da pasta de trabalhoquinta-feira, 19 de maio de 2011
    • quinta-feira, 19 de maio de 2011
    • git add adiciona arquivos ao indexquinta-feira, 19 de maio de 2011
    • git add - exemplo #1 # cria arquivo README $ touch README # o adiciona ao index $ git add READMEquinta-feira, 19 de maio de 2011
    • 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
    • git rm remove o arquivo da árvore de trabalho e do indexquinta-feira, 19 de maio de 2011
    • git commit grava as mudanças no repositórioquinta-feira, 19 de maio de 2011
    • 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
    • git log mostra o log dos commitsquinta-feira, 19 de maio de 2011
    • git log - exemplos # arquivos criados, renomeados, mudanças.. $ git log --summary --oneline # mostra os commts e a árvore de merges $ git log --oneline --graph --colorquinta-feira, 19 de maio de 2011
    • git config modifica as configurações do repositório e globaisquinta-feira, 19 de maio de 2011
    • git config - exemplo $ git config --list $ git config --global user.name “Adriano Melo” $ git config --global user.email “astm@itautec.cin.ufpe.br”quinta-feira, 19 de maio de 2011
    • git commit - correção # corrige informações do último commit $ git commit --amendquinta-feira, 19 de maio de 2011
    • git init git add git commit git status git log git configquinta-feira, 19 de maio de 2011
    • branches desenvolvimento em paraleloquinta-feira, 19 de maio de 2011
    • ao dar commit...quinta-feira, 19 de maio de 2011
    • depois de alguns commits..quinta-feira, 19 de maio de 2011
    • branch == ponteiroquinta-feira, 19 de maio de 2011
    • novo branch (testing)quinta-feira, 19 de maio de 2011
    • master em uso (HEAD)quinta-feira, 19 de maio de 2011
    • testing em uso (HEAD)quinta-feira, 19 de maio de 2011
    • commit em testingquinta-feira, 19 de maio de 2011
    • usando master novamente...quinta-feira, 19 de maio de 2011
    • commit em masterquinta-feira, 19 de maio de 2011
    • um branch em git é um arquivo que contém 40 caracteres. (SHA-1 checksum do commit que ele aponta)quinta-feira, 19 de maio de 2011
    • quinta-feira, 19 de maio de 2011
    • git branch cria, lista e deleta branchesquinta-feira, 19 de maio de 2011
    • git branch - exemplos $ git branch # listar branches $ git branch dev # criar branch $ git branch -m dev stable # renomear $ git branch -d stable # removerquinta-feira, 19 de maio de 2011
    • git checkout muda para o branch especificadoquinta-feira, 19 de maio de 2011
    • git checkout - exemplo # cria branch ‘experimental’ $ git branch experimental # muda para o branch $ git checkout experimentalquinta-feira, 19 de maio de 2011
    • git checkout - exemplo #2 # mostra os últimos commits $ git log --oneline a5eddf9 correcao na gramatica da divisao, ad50ebf seg fault removido dbb2342 doc changes # vai para o commit dbb2342 $ git checkout dbb2342quinta-feira, 19 de maio de 2011
    • git merge junta dois branchesquinta-feira, 19 de maio de 2011
    • git merge - exemplo $ git checkout -b documentacao $ touch INSTALL $ git add INSTALL $ git commit -m ‘arquivo INSTALL criado’ $ git checkout master $ git merge documentacaoquinta-feira, 19 de maio de 2011
    • git rebase integrar mudanças de uma branch à ultima versão de outraquinta-feira, 19 de maio de 2011
    • quinta-feira, 19 de maio de 2011
    • git rebase - exemplo $ git checkout issue32 # adiciona as mudancas do branch issue32 ao branch master $ git rebase masterquinta-feira, 19 de maio de 2011
    • git branch git checkout git merge git rebasequinta-feira, 19 de maio de 2011
    • remote trabalhando de forma colaborativaquinta-feira, 19 de maio de 2011
    • 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
    • git clone “clona” um repositórioquinta-feira, 19 de maio de 2011
    • git clone - exemplo # indo para a pasta do usuário $ cd ~ # clonando o repositório $ git clone https://astm@github.com/astm/c-compiler-in-c.git # indo para a pasta do projeto $ cd c-compiler-in-cquinta-feira, 19 de maio de 2011
    • git push atualiza repositório remoto com as mudanças locaisquinta-feira, 19 de maio de 2011
    • 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 masterquinta-feira, 19 de maio de 2011
    • 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 issue32quinta-feira, 19 de maio de 2011
    • git fetch atualiza o branch remoto especificadoquinta-feira, 19 de maio de 2011
    • git fetch - exemplo #1 # clonando o repositório c-compiler-in-c $ git clone https://astm@github.com/astm/c-compiler-in-c.git # atualizando o branch origin/master $ git fetch origin # merge o origin/master com o master $ git merge origin/masterquinta-feira, 19 de maio de 2011
    • 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
    • outros comandos..quinta-feira, 19 de maio de 2011
    • git bisect faz uma busca binária para achar o commit que um bug foi introduzido (regressão)quinta-feira, 19 de maio de 2011
    • git bisect - exemplo $ git bisect start $ git bisect bad $ git bisect good v2.6.13-rc2 Bisecting: 675 revisions left to test after this $ git bisect good Bisecting: 337 revisions left to test after this $ git bisect resetquinta-feira, 19 de maio de 2011
    • git reset limpa o HEAD para o estado especificadoquinta-feira, 19 de maio de 2011
    • git reset - exemplo $ touch gui.java $ git add gui.java $ git resetquinta-feira, 19 de maio de 2011
    • site: cinlug-br.org twitter: twitter.com/cinlug lista: http://groups.google.com/group/cinlug/quinta-feira, 19 de maio de 2011