0
Git       John Henrique Teixeira de Godoi          Instituto de Ciˆncias e Tecnologia                         e          U...
O quˆ? Por quˆ? Pra quˆ?                       e        e        e                               Rotina no gitAvisos!     ...
O quˆ? Por quˆ? Pra quˆ?                        e        e        e                                Rotina no gitIndice  1 ...
O quˆ? Por quˆ? Pra quˆ?                        e        e        e                                Rotina no gitIndice  1 ...
Versionadores                O quˆ? Por quˆ? Pra quˆ?                    e        e        e                              ...
Versionadores                O quˆ? Por quˆ? Pra quˆ?                    e        e        e                              ...
Versionadores                    O quˆ? Por quˆ? Pra quˆ?                        e        e        e                      ...
Versionadores                    O quˆ? Por quˆ? Pra quˆ?                        e        e        e                      ...
Versionadores                   O quˆ? Por quˆ? Pra quˆ?                       e        e        e                        ...
Versionadores                   O quˆ? Por quˆ? Pra quˆ?                       e        e        e                        ...
Reposit´rio                                                      o                                              Desenvolvi...
Reposit´rio                                                        o                                                Desenv...
Reposit´rio                                                      o                                              Desenvolvi...
Reposit´rio                                                       o                                               Desenvol...
Reposit´rio                                                      o                                              Desenvolvi...
Reposit´rio                                                      o                                              Desenvolvi...
Reposit´rio                                                     o                                             Desenvolvime...
Reposit´rio                                                      o                                              Desenvolvi...
Reposit´rio                                                     o                                             Desenvolvime...
Reposit´rio                                                      o                                              Desenvolvi...
Reposit´rio                                                      o                                              Desenvolvi...
Reposit´rio                                                         o                                                 Dese...
Reposit´rio                                                     o                                             Desenvolvime...
Reposit´rio                                                        o                                                Desenv...
Reposit´rio                                                      o                                              Desenvolvi...
Reposit´rio                                                      o                                              Desenvolvi...
Reposit´rio                                                        o                                                Desenv...
Upcoming SlideShare
Loading in...5
×

Git

893

Published on

Introdução ao sistema de versionamento distríbuido git.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
893
On Slideshare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
32
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Git"

  1. 1. Git John Henrique Teixeira de Godoi Instituto de Ciˆncias e Tecnologia e Universidade Federal de S˜o Paulo a S˜o Jos´ dos Campos – SP, Brasil a e Outubro, 2011Programa de Educa¸˜o em Software Livre - PESL ca
  2. 2. O quˆ? Por quˆ? Pra quˆ? e e e Rotina no gitAvisos! Esses slides s˜o baseados principalmente no GitReference. a Algumas tradu¸˜es podem n˜o ser fi´is mas se adequavam co a e melhor ao contesto. Al´m do cont´udo desses slides tem a parte pr´tica que ser´ e e a a exibida durante a apresenta¸˜o. ca John Henrique Teixeira de Godoi Git
  3. 3. O quˆ? Por quˆ? Pra quˆ? e e e Rotina no gitIndice 1 O quˆ? Por quˆ? Pra quˆ? e e e Versionadores Distribu´ ıdos Git John Henrique Teixeira de Godoi Git
  4. 4. O quˆ? Por quˆ? Pra quˆ? e e e Rotina no gitIndice 1 O quˆ? Por quˆ? Pra quˆ? e e e Versionadores Distribu´ ıdos Git 2 Rotina no git Reposit´rio o Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando John Henrique Teixeira de Godoi Git
  5. 5. Versionadores O quˆ? Por quˆ? Pra quˆ? e e e Distribu´ ıdos Rotina no git GitImagine vocˆ no desenvolvimento de um sistema com milhares de e arquivos, milh˜es de linhas de c´digos e centenas de o o desenvolvedores. Como organizar, compartilhar e sincronizar tudo o que for produzido? John Henrique Teixeira de Godoi Git
  6. 6. Versionadores O quˆ? Por quˆ? Pra quˆ? e e e Distribu´ ıdos Rotina no git Git Alguma vez vocˆ j´ quis que fazer Ctrl+Z em algum arquivo e a depois de ter desligado o computador?J´ quis fazer alguma mudan¸a no seu c´digo e ter a garantia de a c o mantˆ-lo est´vel? e a John Henrique Teixeira de Godoi Git
  7. 7. Versionadores O quˆ? Por quˆ? Pra quˆ? e e e Distribu´ ıdos Rotina no git GitVersionadores - O que s˜o? Para que servem? Por quˆ a eus´-los? a Versionadores s˜o sistemas que permitem o gerenciamento da a manipula¸˜o de arquivos, n˜o apenas c´digos-fontes, de forma que ca a o seja poss´ trabalhar com diversas c´pias, vers˜es, do mesmo em ıvel o o momentos diferentes com a possibilidade de unific´-las, a recuper´-las, compar´-las, sincroniz´-las, manter um hist´rico do a a a o que for desenvolvido e, ainda, pessoas diferentes trabalharem sobre o mesmo arquivo em paralelo. John Henrique Teixeira de Godoi Git
  8. 8. Versionadores O quˆ? Por quˆ? Pra quˆ? e e e Distribu´ ıdos Rotina no git GitSistemas de Versionamento Distribu´ ıdos Diferentes de seus antecessores, que necessitavam de uma aplica¸˜o servidor que centraliza-se o gerencimento dos arquivos, ca os versionadores distribu´ıdos dispensam essa necessidade com c´pias independentes do mesmo c´digo que podem comunicar o o entre si e se sincronizarem. Cada c´pia pode ser tratada com um backup de todo o sistema e o n˜o necessitam de conex˜o com a internet para que possam a a trabalhar de forma eficiente. John Henrique Teixeira de Godoi Git
  9. 9. Versionadores O quˆ? Por quˆ? Pra quˆ? e e e Distribu´ ıdos Rotina no git GitGit Criado por Linus Torvalds em 2005. Nome vem de uma brincadeira com a g´ “git” e o Kernel ıria criado por Linus levar seu nome. Sistema de Versionamento Distribu´ com foco em seu ıdo desempenho. Desenvolvido voltado para o versionamento do kernel Linux que antes era versionado com software propriet´rio. a John Henrique Teixeira de Godoi Git
  10. 10. Versionadores O quˆ? Por quˆ? Pra quˆ? e e e Distribu´ ıdos Rotina no git GitGit - interface Os comandos do git s˜o passados como parˆmetros ap´s a a a o chamada deste na linha de comando. git <comando><op¸˜es><parˆmetros> co a Existem interface gr´ficas, e plugins para IDE’s, que facilitam a o uso das funcionalidades do git sem ter que usar o terminal. NetBeans: http://nbgit.org/ Eclipse: http://eclipse.org/egit/ gitk e git-gui s˜o interfaces gr´ficas nativas. a a Para windows o tortoisegit ´ uma das melhores op¸˜es. e co http://code.google.com/p/tortoisegit/ John Henrique Teixeira de Godoi Git
  11. 11. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoRotina no git O uso dos comandos do git pode ser resumido em uma rotina di´ria que abragem as necessidades do cotidiano com um a versionador. John Henrique Teixeira de Godoi Git
  12. 12. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoRotina no git - cheatsheet Figure: http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html John Henrique Teixeira de Godoi Git
  13. 13. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoDeterminando territ´rio o init(-db) <op¸˜es> co Atrav´s desse comando ´ inicializado um e e reposit´rio git. o Uma op¸˜o bastante usada a –bare que permite ca a cria¸˜o de um reposit´rio sem qualquer ca o configura¸˜o pr´via. ca e clone <Endere¸oReposit´rioRemoto> c o Com este comando criasse uma c´pia de um o reposit´rio remoto para o diret´rio atual. o o John Henrique Teixeira de Godoi Git
  14. 14. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoIdentifique-se config - -global <op¸˜es> co Insere suas informa¸˜es para identificar de forma co natural sua modifica¸˜es no projeto. co user.name ’Seu nome’ user.email seuemail@servidor.com John Henrique Teixeira de Godoi Git
  15. 15. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoSelecionando add <Lista de arquivos> Com esse comando vocˆ define quais arquivos e dentro do diret´rio ser˜o versionados e o a rastreados pelo reposit´rio. o Com . todos os arquivos, diret´rios e o sub-diret´rios, existentes, ser˜o adicionados. o a rm <Lista de arquivos> Remove do rastreamento do reposit´rio a lista o de arquivos. mv <fonte><destino> O git n˜o rastreia renomea¸˜o de arquivos, e a ca esse comando ´ equivalente a (git rm –cached e orig; mv orig new; git add new). John Henrique Teixeira de Godoi Git
  16. 16. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoComo estamos? status <op¸˜es> co Mostra o estado dos arquivos. -s exibe um resumo do estado no diret´rio(??) e o no reposit´rio(A—M—D). o Adicionado, Modificado e Apagado(Deleted). John Henrique Teixeira de Godoi Git
  17. 17. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoRegistrando o momento commit <op¸˜es> co Registra as modifica¸˜es realizadas no co reposit´rio. o -a adiciona as mudan¸as realizadas (git add) ao c reposit´rio. o -m “descri¸˜o” permite colocar uma descri¸˜o ca ca geral da mudan¸as realizadas naquele registro. c Esses registros poderam ser comparados, revertidos e compartilhados posteriormente. John Henrique Teixeira de Godoi Git
  18. 18. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoDe volta do t´nel do tempo u diff Mostra a diferen¸a, linha por linha, do que foi c adicionado ou n˜o ao reposit´rio. a o - -cached apenas para o que foi adicionado HEAD (registro especial que representa o estado atual) diferen¸a entre HEAD e o ultimo registro. c ´ - -stats resumo das diferen¸as c reset <Registro> troca o cont´udo HEAD pelo registro passado e como parˆmetro. a “Ctrl+Z” do git - -hard Al´m do cont´udo do registro altera a e e ´rvore de registro e descarta todo o resto (use a com modera¸˜o). ca John Henrique Teixeira de Godoi Git
  19. 19. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoRamificando branch <op¸˜es><nome da ramifica¸˜o> co ca sem passar nenhum parˆmetro, ele listar´ as a a ramifica¸˜es existentes co passando um nome, ele criar´ uma ramifica¸˜o a a ca partir da atual -d permite excluir a ramifica¸˜o (Use com ca modera¸˜o!). ca checkout <op¸˜es><nome da ramifica¸˜o> co ca Altera qual a ramifica¸˜o est´ sendo trabalhada. ca a Obs.: Ele ir´ exigir o registro de poss´ a ıveis modifica¸˜es antes de realizar a troca. co -b cria uma nova ramifica¸˜o e depois altera ca para essa John Henrique Teixeira de Godoi Git
  20. 20. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoUnindo merge <Lista de ramifica¸˜es> co Unifica as ramifica¸˜es passadas por parˆmetro co a com a atual e os registros mais recentes ser˜o a combinados em um novo. ...::*CONFLITOS*::... git merge - -abort use mergetool e diff a vontade, resolva os conflitos e proceda com o merge novamente. John Henrique Teixeira de Godoi Git
  21. 21. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoNos “registros” anteriores do projeto... log exibe o hist´rico de registro da ramifica¸˜o o ca atual. O que inclui indentificador, nome e e-mail do usu´rio, data e hor´rio e descri¸˜o. a a ca - -oneline exibe apenas o identificador e a descri¸˜o. ca - -graph mostra um grafo com o comportamento dos registro (unifica¸˜es e ramifica¸˜es). co co tag permite criar um marco no hist´rico de forma o que se possa us´-lo para referenciar algum ponto a no hist´rico. o git log - -decorate exibe os marcos tamb´m e John Henrique Teixeira de Godoi Git
  22. 22. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoVocˆ n˜o est´ sozinho! e a a remote sem parˆmetos mostra a lista de nomes dos a reposit´rios remotos. o -v mostra, tamb´m, o endere¸o de cada e c reposit´rio para envio e busca de atualiza¸˜es. o co add <nome><endere¸o>adiciona um novo c reposit´rio com o nome e endere¸o passados por o c parˆmetro. a rm <nome>remove o reposit´rio com o nome o passado por parˆmetro a John Henrique Teixeira de Godoi Git
  23. 23. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoComunicando-se fetch <nome> faz o download das novas ramifica¸˜es e dados co do reposit´rio remoto. o pull <nome> al´m do download tenta unificar com a e ramifica¸˜o atual. ca push <nome><ramifica¸˜o> ca envia suas novas ramifica¸˜es e dados para um co reposit´rio remoto. o John Henrique Teixeira de Godoi Git
  24. 24. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoPente fino Para filtrar o hist´rico gerado pelo “log” podemos usar alguns o parˆmetros: a - -author=<autor>- -oneline -<quantidade>filtra o hist´rico o pelo “autor” mostrando os registros, limitado a uma certa “quantidade”, feitos por este. - -since, - -before, - -until, - -after={ data} filtra por uma especifica “data”, desde, antes, at´ e depois desta, e respectivamente. data pode ser escrita nas formas: 3.weeks.ago ou 2011-10-4, por exemplo - -grep=<padr˜o>busca os registros que possuam o “padr˜o” a a em suas informa¸˜esco - -S<mudan¸a>procura no hist´rico onde foi inserida a c o “mudan¸a” passada que pode ser uma fun¸˜o, por exemplo. c ca John Henrique Teixeira de Godoi Git
  25. 25. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoPente fino merge-base <ramifica¸˜o1><ramifica¸˜o2> ca ca encontro o registro em comum entre as ramifica¸˜es passadas por parˆmetro co a diff - -stat <ramifica¸˜o1><ramifica¸˜o2> ca ca encontra o registro em comum e mostra quais foram as mudan¸as. c blame <arquivo> exibe o respons´vel por cada linha de c´digo. a o John Henrique Teixeira de Godoi Git
  26. 26. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoColher de ch´ a DiffMerge, Kdiff3 ou Meld – ferramentas gr´ficas para solu¸˜o a ca de conflitos sudo apt-get install meld ; git config - -global merge.tool meld John Henrique Teixeira de Godoi Git
  27. 27. Reposit´rio o Desenvolvimento O quˆ? Por quˆ? Pra quˆ? e e e Dividir para Conquistar e Somar resultados Rotina no git Compartilhando e Atualizando projetos Examinando e comparandoReferˆncias e gitref.org/ git-scm.org zrusin.blogspot.com/2007/09/git-cheat-sheet.html andyjeffries.co.uk/articles/25-tips-for-intermediate-git-users pajeonline.blogspot.com/2010/12/versionando-seus-dados- boas-praticas-e.html John Henrique Teixeira de Godoi Git
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×