diferentes verses de um arquivo qualquer. 2 Git Backup automtico de todos os arquivos. Controle de histrico das alteraes, permitindo identificar quem alterou, quando foi alterado, o que foi alterado e por que foi alterado. Marcao e resgate de verses estveis (Tags). Ramificao (Branches). 3 Git Centralizado Distribudo 4 Git Repositrio fica armazenado em um nico local. Desenvolvedores ao fazerem checkout, obtm uma cpia apenas dos arquivos do repositrio. Aes como commit e visualizao do histrico dependem de acesso rede. 5 Git Cada cpia um repositrio completo. Desenvolvedores ao fazerem checkout, obtm um clone do repositrio remoto, contendo inclusive o histrico e os branches. Aes como commit e visualizao do histrico independem de acesso rede, ou seja, podem ser feitos offline. 6 Git Sistema de controle de verses distribudo Open Source. Inicialmente desenvolvido por Linus Torvalds com o intuito de controlar o Kernel do Linux. Foco em rapidez, eficincia e uso em grandes projetos. 7 Git Android Eclipse Linux Kernel PostgreSQL Samba Ruby on Rails ... e muito mais 8 Git Branch Checkout Commit Merge Pull Push Show log Tag 9 Git Ramo de desenvolvimento paralelo uma linha principal (work). Git 10 O nome de um branch depende do tipo da solicitao, que pode ser ticket ou projeto. Ticket (1 solicitao): ticket[Id da solicitao]. Ex.: ticket1. Projeto (conjunto de solicitaes): prj[Id do projeto]marco[Id do marco]. Ex.: prj1marco1. Git 11 Sempre que o desenvolvimento de um branch ultrapassar um prazo de 3 dias, o desenvolvedor deve solicitar a atualizao do mesmo com as ltimas alteraes realizadas na work. Este procedimento visa facilitar a integrao, mantendo os branches sempre atualizados. Git 12 Diferentemente de um VCS Centralizado, como o SVN por exemplo, o checkout no serve para baixar a cpia de um repositrio. No Git, a funo do checkout posicionar em um determinado branch. Ou seja, alternar entre diferentes branches (ramos) de um mesmo repositrio. Git 13 Diferentemente de um VCS Centralizado, como o SVN por exemplo, o commit no envia os arquivos modificados diretamente para o servidor. No Git, o commit o ato de vincular ao branch os arquivos que foram modificados. Ou seja, uma marcao de quais arquivos sero enviados ao repositrio remoto quando as alteraes forem empurradas. Git 14 Pode ser feito offline, ou seja, no necessita da rede. Deve ser utilizado, obrigatoriamente, antes de tentar empurrar as alteraes para o repositrio remoto. Git 15 Processo de integrao das alteraes realizadas em um branch com a linha principal (work), ou atualizao de um branch com as ltimas mudanas disponveis na linha principal. Git 16 Consiste em puxar para o repositrio local as ltimas alteraes disponibilizadas no repositrio remoto. Git 17 Consiste em empurrar os commits realizados no repositrio local para o repositrio remoto. Git 18 Consiste em visualizar os commits realizados, ou seja, visualizar o histrico das alteraes. Git 19 Marcao realizada no repositrio para permitir identificar o estado de um arquivo em determinado momento. Git 20 o console onde so utilizados os comandos do git. Git 21 Configurar um repositrio? Clonar um repositrio? Criar um branch local rastreando um branch remoto? Posicionar em um branch local? Criar um branch local? Puxar as alteraes do repositrio remoto? Criar um brach remoto? Git 22 Visualizar as alteraes? Realizar um commit? Visualizar os commits? Empurrar os commits para o repositrio remoto? Apagar um branch local? Apagar um branch remoto? Pesquisar quais branches existem? Git 23 No git bash, digite: mkdir ~/.ssh echo "User = seu_nome.assinatura" > ~/.ssh/config git config --global user.name seu_nome.assinatura git config --global user.email seu_nome.assinatura@siagri.com.br git config --global color.ui auto Git 24 git config --global i18n.commitencoding ISO-8859-1 git config --global diff.renamelimit 0 git config --global merge.renamelimit 0 git config --global branch.autosetuprebase always git config --global core.excludesfile gitignore seu_nome.assinatura Git 25 Crie uma nova pasta Acesse a nova pasta atravs do git bash git clone ssh://10.0.0.3/nome_repositorio nome_repositoro Git 26 Nome que aparece entre parnteses no Git Bash. Git 27 git checkout -- track -b nome_branch origin/nome_branch nome_branch Git 28 git checkout nome_branch nome_branch Git 29 git checkout b nome_branch nome_branch Observao: Para realizar o desenvolvimento no devem ser criados branches locais, os mesmos devem ser criados remotamente. Portanto, esta opo deve ser utilizada somente para realizao de testes ou para posicionar em uma tag. Git 30 git pull --rebase Git 31 Posicionar no branch work Puxar as alteraes do repositrio remoto git push origin work:refs/heads/nome_branch nome_branch Observao: Os branches remotos sempre devem ser criados a partir do branch work. Git 32 nome_branch Observao: Utilizando este script, no necessrio posicionar na work e puxar manualmente antes de criar o branch remoto. Alm disso, j criado um branch local rastreando o branch remoto. Ou seja, com um nico comando so executados vrios procedimentos automaticamente. Git 33 git status (visualiza os arquivos modificados) gitk (visualiza as alteraes que foram realizadas) TortoiseGit > Check for modifications Git 34 TortoiseGit > Commit Visualize as alteraes, descartando as que no so necessrias Marque os arquivos que sero enviados No campo message informe o nome do branch, seguido de uma descrio da(s) alterao(es) que foi(ram) realizada(s). Em se tratando de projeto, informe tambm qual solicitao o commit se refere. Git 35 gitk TortoiseGit > Show log Git 36 git push origin nome_branch nome_branch Git 37 Atravs do gitk ou TortoiseGit > Show log, verifique se o branch local, e seu respectivo branch remoto, esto no mesmo nvel (linha). Git 38 git branch -D nome_branch nome_branch Git 39 Observao: A excluso de um branch remoto somente ser realizada mediante a uma solicitao realizada ao analista de configurao, pois este procedimento realizado diretamente no repositrio remoto. Git 40 git branch (exibe os branches locais) git branch -a (exibe os branches locais e remotos) nome_branch (localiza um branch especfico) Git 41 git remote prune origin Git 42 Git 43 Alex Ferreira de Almeida @alexfdealmeida skype: alexferreiradealmeida Git 44