Git
John Henrique Teixeira de Godoi
Instituto de Ciˆencias e Tecnologia
Universidade Federal de S˜ao Paulo
S˜ao Jos´e dos Campos – SP, Brasil
Outubro, 2011
Programa de Educa¸c˜ao em Software Livre - PESL
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Avisos!
Esses slides s˜ao baseados principalmente no GitReference.
Algumas tradu¸c˜oes podem n˜ao ser fi´eis mas se adequavam
melhor ao contesto.
Al´em do cont´eudo desses slides tem a parte pr´atica que ser´a
exibida durante a apresenta¸c˜ao.
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Indice
1 O quˆe? Por quˆe? Pra quˆe?
Versionadores
Distribu´ıdos
Git
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Indice
1 O quˆe? Por quˆe? Pra quˆe?
Versionadores
Distribu´ıdos
Git
2 Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Versionadores
Distribu´ıdos
Git
Imagine vocˆe no desenvolvimento de um sistema com milhares de
arquivos, milh˜oes de linhas de c´odigos e centenas de
desenvolvedores.
Como organizar, compartilhar e sincronizar tudo o que for
produzido?
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Versionadores
Distribu´ıdos
Git
Alguma vez vocˆe j´a quis que fazer Ctrl+Z em algum arquivo
depois de ter desligado o computador?
J´a quis fazer alguma mudan¸ca no seu c´odigo e ter a garantia de
mantˆe-lo est´avel?
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Versionadores
Distribu´ıdos
Git
Versionadores - O que s˜ao? Para que servem? Por quˆe
us´a-los?
Versionadores s˜ao sistemas que permitem o gerenciamento da
manipula¸c˜ao de arquivos, n˜ao apenas c´odigos-fontes, de forma que
seja poss´ıvel trabalhar com diversas c´opias, vers˜oes, do mesmo em
momentos diferentes com a possibilidade de unific´a-las,
recuper´a-las, compar´a-las, sincroniz´a-las, manter um hist´orico do
que for desenvolvido e, ainda, pessoas diferentes trabalharem sobre
o mesmo arquivo em paralelo.
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Versionadores
Distribu´ıdos
Git
Sistemas de Versionamento Distribu´ıdos
Diferentes de seus antecessores, que necessitavam de uma
aplica¸c˜ao servidor que centraliza-se o gerencimento dos arquivos,
os versionadores distribu´ıdos dispensam essa necessidade com
c´opias independentes do mesmo c´odigo que podem comunicar
entre si e se sincronizarem.
Cada c´opia pode ser tratada com um backup de todo o sistema e
n˜ao necessitam de conex˜ao com a internet para que possam
trabalhar de forma eficiente.
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Versionadores
Distribu´ıdos
Git
Git
Criado por Linus Torvalds em 2005.
Nome vem de uma brincadeira com a g´ıria “git” e o Kernel
criado por Linus levar seu nome.
Sistema de Versionamento Distribu´ıdo com foco em seu
desempenho.
Desenvolvido voltado para o versionamento do kernel Linux
que antes era versionado com software propriet´ario.
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Versionadores
Distribu´ıdos
Git
Git - interface
Os comandos do git s˜ao passados como parˆametros ap´os a
chamada deste na linha de comando.
git <comando><op¸c˜oes><parˆametros>
Existem interface gr´aficas, e plugins para IDE’s, que facilitam
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˜ao interfaces gr´aficas nativas.
Para windows o tortoisegit ´e uma das melhores op¸c˜oes.
http://code.google.com/p/tortoisegit/
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Rotina no git
O uso dos comandos do git pode ser resumido em uma rotina
di´aria que abragem as necessidades do cotidiano com um
versionador.
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Rotina no git - cheatsheet
Figure: http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Determinando territ´orio
init(-db) <op¸c˜oes>
Atrav´es desse comando ´e inicializado um
reposit´orio git.
Uma op¸c˜ao bastante usada a –bare que permite
a cria¸c˜ao de um reposit´orio sem qualquer
configura¸c˜ao pr´evia.
clone <Endere¸coReposit´orioRemoto>
Com este comando criasse uma c´opia de um
reposit´orio remoto para o diret´orio atual.
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Identifique-se
config - -global <op¸c˜oes>
Insere suas informa¸c˜oes para identificar de forma
natural sua modifica¸c˜oes no projeto.
user.name ’Seu nome’
user.email seuemail@servidor.com
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Selecionando
add <Lista de arquivos>
Com esse comando vocˆe define quais arquivos
dentro do diret´orio ser˜ao versionados e
rastreados pelo reposit´orio.
Com . todos os arquivos, diret´orios e
sub-diret´orios, existentes, ser˜ao adicionados.
rm <Lista de arquivos>
Remove do rastreamento do reposit´orio a lista
de arquivos.
mv <fonte><destino>
O git n˜ao rastreia renomea¸c˜ao de arquivos, e
esse comando ´e equivalente a (git rm –cached
orig; mv orig new; git add new).
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Como estamos?
status <op¸c˜oes>
Mostra o estado dos arquivos.
-s exibe um resumo do estado no diret´orio(??) e
no reposit´orio(A—M—D).
Adicionado, Modificado e Apagado(Deleted).
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Registrando o momento
commit <op¸c˜oes>
Registra as modifica¸c˜oes realizadas no
reposit´orio.
-a adiciona as mudan¸cas realizadas (git add) ao
reposit´orio.
-m “descri¸c˜ao” permite colocar uma descri¸c˜ao
geral da mudan¸cas realizadas naquele registro.
Esses registros poderam ser comparados,
revertidos e compartilhados posteriormente.
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
De volta do t´unel do tempo
diff
Mostra a diferen¸ca, linha por linha, do que foi
adicionado ou n˜ao ao reposit´orio.
- -cached apenas para o que foi adicionado
HEAD (registro especial que representa o estado
atual) diferen¸ca entre HEAD e o ´ultimo registro.
- -stats resumo das diferen¸cas
reset <Registro>
troca o cont´eudo HEAD pelo registro passado
como parˆametro.
“Ctrl+Z” do git
- -hard Al´em do cont´eudo do registro altera a
´arvore de registro e descarta todo o resto (use
com modera¸c˜ao).
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Ramificando
branch <op¸c˜oes><nome da ramifica¸c˜ao>
sem passar nenhum parˆametro, ele listar´a as
ramifica¸c˜oes existentes
passando um nome, ele criar´a uma ramifica¸c˜ao a
partir da atual
-d permite excluir a ramifica¸c˜ao (Use com
modera¸c˜ao!).
checkout <op¸c˜oes><nome da ramifica¸c˜ao>
Altera qual a ramifica¸c˜ao est´a sendo trabalhada.
Obs.: Ele ir´a exigir o registro de poss´ıveis
modifica¸c˜oes antes de realizar a troca.
-b cria uma nova ramifica¸c˜ao e depois altera
para essa
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Unindo
merge <Lista de ramifica¸c˜oes>
Unifica as ramifica¸c˜oes passadas por parˆametro
com a atual e os registros mais recentes ser˜ao
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
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Nos “registros” anteriores do projeto...
log
exibe o hist´orico de registro da ramifica¸c˜ao
atual. O que inclui indentificador, nome e e-mail
do usu´ario, data e hor´ario e descri¸c˜ao.
- -oneline exibe apenas o identificador e a
descri¸c˜ao.
- -graph mostra um grafo com o comportamento
dos registro (unifica¸c˜oes e ramifica¸c˜oes).
tag
permite criar um marco no hist´orico de forma
que se possa us´a-lo para referenciar algum ponto
no hist´orico.
git log - -decorate exibe os marcos tamb´em
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Vocˆe n˜ao est´a sozinho!
remote
sem parˆametos mostra a lista de nomes dos
reposit´orios remotos.
-v mostra, tamb´em, o endere¸co de cada
reposit´orio para envio e busca de atualiza¸c˜oes.
add <nome><endere¸co>adiciona um novo
reposit´orio com o nome e endere¸co passados por
parˆametro.
rm <nome>remove o reposit´orio com o nome
passado por parˆametro
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Comunicando-se
fetch <nome>
faz o download das novas ramifica¸c˜oes e dados
do reposit´orio remoto.
pull <nome>
al´em do download tenta unificar com a
ramifica¸c˜ao atual.
push <nome><ramifica¸c˜ao>
envia suas novas ramifica¸c˜oes e dados para um
reposit´orio remoto.
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Pente fino
Para filtrar o hist´orico gerado pelo “log” podemos usar alguns
parˆametros:
- -author=<autor>- -oneline -<quantidade>filtra o hist´orico
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 e depois desta,
respectivamente.
data pode ser escrita nas formas: 3.weeks.ago
ou 2011-10-4, por exemplo
- -grep=<padr˜ao>busca os registros que possuam o “padr˜ao”
em suas informa¸c˜oes
- -S<mudan¸ca>procura no hist´orico onde foi inserida a
“mudan¸ca” passada que pode ser uma fun¸c˜ao, por exemplo.
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Pente fino
merge-base <ramifica¸c˜ao1><ramifica¸c˜ao2>
encontro o registro em comum entre as
ramifica¸c˜oes passadas por parˆametro
diff - -stat <ramifica¸c˜ao1><ramifica¸c˜ao2>
encontra o registro em comum e mostra quais
foram as mudan¸cas.
blame <arquivo>
exibe o respons´avel por cada linha de c´odigo.
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Colher de ch´a
DiffMerge, Kdiff3 ou Meld – ferramentas gr´aficas para solu¸c˜ao
de conflitos
sudo apt-get install meld ; git config - -global merge.tool meld
John Henrique Teixeira de Godoi Git
O quˆe? Por quˆe? Pra quˆe?
Rotina no git
Reposit´orio
Desenvolvimento
Dividir para Conquistar e Somar resultados
Compartilhando e Atualizando projetos
Examinando e comparando
Referˆencias
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

Git básico

  • 1.
    Git John Henrique Teixeirade Godoi Instituto de Ciˆencias e Tecnologia Universidade Federal de S˜ao Paulo S˜ao Jos´e dos Campos – SP, Brasil Outubro, 2011 Programa de Educa¸c˜ao em Software Livre - PESL
  • 2.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Avisos! Esses slides s˜ao baseados principalmente no GitReference. Algumas tradu¸c˜oes podem n˜ao ser fi´eis mas se adequavam melhor ao contesto. Al´em do cont´eudo desses slides tem a parte pr´atica que ser´a exibida durante a apresenta¸c˜ao. John Henrique Teixeira de Godoi Git
  • 3.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Indice 1 O quˆe? Por quˆe? Pra quˆe? Versionadores Distribu´ıdos Git John Henrique Teixeira de Godoi Git
  • 4.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Indice 1 O quˆe? Por quˆe? Pra quˆe? Versionadores Distribu´ıdos Git 2 Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando John Henrique Teixeira de Godoi Git
  • 5.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Versionadores Distribu´ıdos Git Imagine vocˆe no desenvolvimento de um sistema com milhares de arquivos, milh˜oes de linhas de c´odigos e centenas de desenvolvedores. Como organizar, compartilhar e sincronizar tudo o que for produzido? John Henrique Teixeira de Godoi Git
  • 6.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Versionadores Distribu´ıdos Git Alguma vez vocˆe j´a quis que fazer Ctrl+Z em algum arquivo depois de ter desligado o computador? J´a quis fazer alguma mudan¸ca no seu c´odigo e ter a garantia de mantˆe-lo est´avel? John Henrique Teixeira de Godoi Git
  • 7.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Versionadores Distribu´ıdos Git Versionadores - O que s˜ao? Para que servem? Por quˆe us´a-los? Versionadores s˜ao sistemas que permitem o gerenciamento da manipula¸c˜ao de arquivos, n˜ao apenas c´odigos-fontes, de forma que seja poss´ıvel trabalhar com diversas c´opias, vers˜oes, do mesmo em momentos diferentes com a possibilidade de unific´a-las, recuper´a-las, compar´a-las, sincroniz´a-las, manter um hist´orico do que for desenvolvido e, ainda, pessoas diferentes trabalharem sobre o mesmo arquivo em paralelo. John Henrique Teixeira de Godoi Git
  • 8.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Versionadores Distribu´ıdos Git Sistemas de Versionamento Distribu´ıdos Diferentes de seus antecessores, que necessitavam de uma aplica¸c˜ao servidor que centraliza-se o gerencimento dos arquivos, os versionadores distribu´ıdos dispensam essa necessidade com c´opias independentes do mesmo c´odigo que podem comunicar entre si e se sincronizarem. Cada c´opia pode ser tratada com um backup de todo o sistema e n˜ao necessitam de conex˜ao com a internet para que possam trabalhar de forma eficiente. John Henrique Teixeira de Godoi Git
  • 9.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Versionadores Distribu´ıdos Git Git Criado por Linus Torvalds em 2005. Nome vem de uma brincadeira com a g´ıria “git” e o Kernel criado por Linus levar seu nome. Sistema de Versionamento Distribu´ıdo com foco em seu desempenho. Desenvolvido voltado para o versionamento do kernel Linux que antes era versionado com software propriet´ario. John Henrique Teixeira de Godoi Git
  • 10.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Versionadores Distribu´ıdos Git Git - interface Os comandos do git s˜ao passados como parˆametros ap´os a chamada deste na linha de comando. git <comando><op¸c˜oes><parˆametros> Existem interface gr´aficas, e plugins para IDE’s, que facilitam 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˜ao interfaces gr´aficas nativas. Para windows o tortoisegit ´e uma das melhores op¸c˜oes. http://code.google.com/p/tortoisegit/ John Henrique Teixeira de Godoi Git
  • 11.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Rotina no git O uso dos comandos do git pode ser resumido em uma rotina di´aria que abragem as necessidades do cotidiano com um versionador. John Henrique Teixeira de Godoi Git
  • 12.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Rotina no git - cheatsheet Figure: http://zrusin.blogspot.com/2007/09/git-cheat-sheet.html John Henrique Teixeira de Godoi Git
  • 13.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Determinando territ´orio init(-db) <op¸c˜oes> Atrav´es desse comando ´e inicializado um reposit´orio git. Uma op¸c˜ao bastante usada a –bare que permite a cria¸c˜ao de um reposit´orio sem qualquer configura¸c˜ao pr´evia. clone <Endere¸coReposit´orioRemoto> Com este comando criasse uma c´opia de um reposit´orio remoto para o diret´orio atual. John Henrique Teixeira de Godoi Git
  • 14.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Identifique-se config - -global <op¸c˜oes> Insere suas informa¸c˜oes para identificar de forma natural sua modifica¸c˜oes no projeto. user.name ’Seu nome’ user.email seuemail@servidor.com John Henrique Teixeira de Godoi Git
  • 15.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Selecionando add <Lista de arquivos> Com esse comando vocˆe define quais arquivos dentro do diret´orio ser˜ao versionados e rastreados pelo reposit´orio. Com . todos os arquivos, diret´orios e sub-diret´orios, existentes, ser˜ao adicionados. rm <Lista de arquivos> Remove do rastreamento do reposit´orio a lista de arquivos. mv <fonte><destino> O git n˜ao rastreia renomea¸c˜ao de arquivos, e esse comando ´e equivalente a (git rm –cached orig; mv orig new; git add new). John Henrique Teixeira de Godoi Git
  • 16.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Como estamos? status <op¸c˜oes> Mostra o estado dos arquivos. -s exibe um resumo do estado no diret´orio(??) e no reposit´orio(A—M—D). Adicionado, Modificado e Apagado(Deleted). John Henrique Teixeira de Godoi Git
  • 17.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Registrando o momento commit <op¸c˜oes> Registra as modifica¸c˜oes realizadas no reposit´orio. -a adiciona as mudan¸cas realizadas (git add) ao reposit´orio. -m “descri¸c˜ao” permite colocar uma descri¸c˜ao geral da mudan¸cas realizadas naquele registro. Esses registros poderam ser comparados, revertidos e compartilhados posteriormente. John Henrique Teixeira de Godoi Git
  • 18.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando De volta do t´unel do tempo diff Mostra a diferen¸ca, linha por linha, do que foi adicionado ou n˜ao ao reposit´orio. - -cached apenas para o que foi adicionado HEAD (registro especial que representa o estado atual) diferen¸ca entre HEAD e o ´ultimo registro. - -stats resumo das diferen¸cas reset <Registro> troca o cont´eudo HEAD pelo registro passado como parˆametro. “Ctrl+Z” do git - -hard Al´em do cont´eudo do registro altera a ´arvore de registro e descarta todo o resto (use com modera¸c˜ao). John Henrique Teixeira de Godoi Git
  • 19.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Ramificando branch <op¸c˜oes><nome da ramifica¸c˜ao> sem passar nenhum parˆametro, ele listar´a as ramifica¸c˜oes existentes passando um nome, ele criar´a uma ramifica¸c˜ao a partir da atual -d permite excluir a ramifica¸c˜ao (Use com modera¸c˜ao!). checkout <op¸c˜oes><nome da ramifica¸c˜ao> Altera qual a ramifica¸c˜ao est´a sendo trabalhada. Obs.: Ele ir´a exigir o registro de poss´ıveis modifica¸c˜oes antes de realizar a troca. -b cria uma nova ramifica¸c˜ao e depois altera para essa John Henrique Teixeira de Godoi Git
  • 20.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Unindo merge <Lista de ramifica¸c˜oes> Unifica as ramifica¸c˜oes passadas por parˆametro com a atual e os registros mais recentes ser˜ao 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.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Nos “registros” anteriores do projeto... log exibe o hist´orico de registro da ramifica¸c˜ao atual. O que inclui indentificador, nome e e-mail do usu´ario, data e hor´ario e descri¸c˜ao. - -oneline exibe apenas o identificador e a descri¸c˜ao. - -graph mostra um grafo com o comportamento dos registro (unifica¸c˜oes e ramifica¸c˜oes). tag permite criar um marco no hist´orico de forma que se possa us´a-lo para referenciar algum ponto no hist´orico. git log - -decorate exibe os marcos tamb´em John Henrique Teixeira de Godoi Git
  • 22.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Vocˆe n˜ao est´a sozinho! remote sem parˆametos mostra a lista de nomes dos reposit´orios remotos. -v mostra, tamb´em, o endere¸co de cada reposit´orio para envio e busca de atualiza¸c˜oes. add <nome><endere¸co>adiciona um novo reposit´orio com o nome e endere¸co passados por parˆametro. rm <nome>remove o reposit´orio com o nome passado por parˆametro John Henrique Teixeira de Godoi Git
  • 23.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Comunicando-se fetch <nome> faz o download das novas ramifica¸c˜oes e dados do reposit´orio remoto. pull <nome> al´em do download tenta unificar com a ramifica¸c˜ao atual. push <nome><ramifica¸c˜ao> envia suas novas ramifica¸c˜oes e dados para um reposit´orio remoto. John Henrique Teixeira de Godoi Git
  • 24.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Pente fino Para filtrar o hist´orico gerado pelo “log” podemos usar alguns parˆametros: - -author=<autor>- -oneline -<quantidade>filtra o hist´orico 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 e depois desta, respectivamente. data pode ser escrita nas formas: 3.weeks.ago ou 2011-10-4, por exemplo - -grep=<padr˜ao>busca os registros que possuam o “padr˜ao” em suas informa¸c˜oes - -S<mudan¸ca>procura no hist´orico onde foi inserida a “mudan¸ca” passada que pode ser uma fun¸c˜ao, por exemplo. John Henrique Teixeira de Godoi Git
  • 25.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Pente fino merge-base <ramifica¸c˜ao1><ramifica¸c˜ao2> encontro o registro em comum entre as ramifica¸c˜oes passadas por parˆametro diff - -stat <ramifica¸c˜ao1><ramifica¸c˜ao2> encontra o registro em comum e mostra quais foram as mudan¸cas. blame <arquivo> exibe o respons´avel por cada linha de c´odigo. John Henrique Teixeira de Godoi Git
  • 26.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Colher de ch´a DiffMerge, Kdiff3 ou Meld – ferramentas gr´aficas para solu¸c˜ao de conflitos sudo apt-get install meld ; git config - -global merge.tool meld John Henrique Teixeira de Godoi Git
  • 27.
    O quˆe? Porquˆe? Pra quˆe? Rotina no git Reposit´orio Desenvolvimento Dividir para Conquistar e Somar resultados Compartilhando e Atualizando projetos Examinando e comparando Referˆencias 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