Git that like a boss - Dos comandos básicos aos branches.

952 visualizações

Publicada em

Trabalhar com sistemas de controle de versões não é só uma obrigação como uma estratégia para muitas empresas.... venha descobrir oque o git pode fazer por você. Dos comandos básicos ao nem tão básicos, oque faz o git tão bom.

0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
952
No SlideShare
0
A partir de incorporações
0
Número de incorporações
120
Ações
Compartilhamentos
0
Downloads
12
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Git that like a boss - Dos comandos básicos aos branches.

  1. 1. git that like a boss ESCREVENDOCÓDIGO COMPARTILHANDOCONHECIMENTO @evandroeisinger @helmedeiros @rssilva
  2. 2. ? EM U Q @evandroeisinger
  3. 3. ? EM U Q @helmedeiros
  4. 4. ? EM U Q @rssilva
  5. 5. o que é git ? visão abrangente instalando o git ambiente configurado git that like a boss NOSSA AGENDA comandos no git trabalhando localmente repositórios no git trabalhando em time repositórios no github trabalhando online HACKATHON
  6. 6. Git é um sistema de controle de versão distribuído livre e de código aberto, projetado para lidar com tudo, de pequenos a grandes projetos, com velocidade e eficiência. http://git-scm.com/
  7. 7. !=
  8. 8. git that like a boss O QUE É GIT? branching offLine distribuido enxuto
  9. 9. de er az cê l f vo íve ue ss q po o , é esm in e , m fl g of in ou mit e m e. lin co ed r on g, o in ma ad erg hu us m en er g, an s in do de ch ta po ran ec it b G o, on c d steja tu e ão n f f o e in L
  10. 10. ou iar eja nv , s l e os íve ot ss em po r tra é ios ou e ed itór lquer r s ua epo qua s r a s de na tro or ou ou t re de do cê es iza al vo çõ tr e a en qu rm im nfo oc s i ri itó As ar os a ix m rep b u ele soa. es p D IB R T IS O ID U
  11. 11. de e ma te d te en sis ar no nsp scla, es tra me çõ o ra nt o, e ju p n çã o o ria s c c ua m s u ua s ta do a en in ra m uz pa da od un pr es . f , it s ad os g e ilid utr O nch ac o f e ra ões e ntr b ç ,e fun carte es d R B G IN H C N A
  12. 12. ps n wcpro . .sv all|-- |-i es ntr at | - e rm |- fo ase | - rop-b |- p | ase - rops se |- p n-b | -ba file.sv |- text ke | |-- |-- Ra | | fil e | ake ops |.. R ib . .rb ay.rb .git efile n wcpr gle rr |.. l |-- .sv all|-- Rak rian d_a ec t -- ntries | | |- ib als_ rinte emsp | l sc _p - e rmat |- fo | |-- -- pa tty e .g | | e riangl r t |-| | -- p _ | | ls | | sca a -- p | rio tó ire de d um ade as b il id s e en si ap os me uí u p no s o os e de it p dad nças g i , o ess da N c u V ne m S o em om c ed ,s te nt to e je en tem pro tivam en o ga fer iz d i D ra ne do na afeta er s. s ta as p N E O T U X
  13. 13. git that like a boss INSTALANDO O GIT macosx download windows git config
  14. 14. eu s s e em dad do cali iza lo til is o u a ra al m pa on ou ci a ad a er um n lo op o ow ma stirã tas d te xi sis o e fei do alh erem do rab a s en e t nd d es it. e e çõ g ep nt D ie ta do b lemen to a m mp en i u ionam o c un f N W O D D A LO
  15. 15. DOWNLOAD 1. Acessar http://msysgit.github.io; 2. Selecionar a opção Downloads; Para o windows Faça o download do instalador a partir da pagina Google Code a baixo: http://msysgit.github.io/ 3. Selecionar a última versão disponível; 4. Selecionar novamente a versão previamente escolhida para começar o download.
  16. 16. DOWNLOAD 1. Acessar http://git-scm.com/download; 2. Escolha a opção para download Linux; Para o linux Você pode realizar o download e instalação por gerenciadores de pacotes como yum e apt-get, ou instalar através do código fonte baixado de: http://git-scm.com/download 3. Escolha a opção indicada para a sua distribuição.
  17. 17. DOWNLOAD 1. Acessar http://code.google.com/p/git-osxinstaller/; Para o macOSX Você pode realizar o download e instalação por gerenciadores de pacotes como homebrew, fink e macports; assim como pode baixar o instalador dmg diretamente de: http://code.google.com/p/git-osxinstaller 2. Selecione a aba Dowloads no topo da página; 3. Selecione a versão mais atual compatível a sua versão do macosx; 4. Selecionar novamente a versão previamente escolhida para começar o download.
  18. 18. to s oje a i pr m l. O ação ci al fá st ito e in u d é m os ws ent do dim in e o W proc tn s Gi do o m do u an tem al it st G In s sy m il. ác f W D IN S W O
  19. 19. WINDOWS Execute o instalador Clique em avançar (Next) até chegar na etapa seguinte
  20. 20. WINDOWS Select Components Marque a opção Simple context menu. Feito isso, avance para próxima tela Habilitando está opção, o Git Bash e o Git GUI serão incorporados ao menu de contexto do Windows, possibilitando executar o comando “Git Bash Here” dentro um diretório qualquer
  21. 21. WINDOWS Select Start Menu Folder deixe o caminho padrão e clique em avançar (Next)
  22. 22. WINDOWS Adjust your PATH deixe marcado a opção Use Git Bash only e prossiga com a instalação
  23. 23. WINDOWS Configure the line ending marque a primeira opção para quebras de linha independente do sistema operacional
  24. 24. WINDOWS Completing the git setup instalação foi concluída com sucesso
  25. 25. x, os ac mo m o no s c it te o g aco lar e p ta d ins res de do as cia eir ren an ge m k. as lvem u Fin um vo o lg en a rts em pa is acPo ist ci Ex prin w, M s eBre a m o H X S O C A M
  26. 26. MACOSX Instalando com Brew Tendo o brew instalado você só precisa fazer: Se você ainda não usa homebrew para gerenciar pacotes no Mac OS, então eu recomendo instalá-lo. ➜ ~ brew install git
  27. 27. MACOSX Onde foi instalado Depois de instalado você deve conseguir ver onde o mesmo foi instalado, rodando o comando: ➜ ~ which git /usr/bin/git
  28. 28. MACOSX Qual versão instalada Após instalado é possível conferir a qualquer momento a versão do git. ➜ ~ git --version git version 1.7.12.4 (Apple Git-37)
  29. 29. IG F N do un eg s o it og . om ões c ç eta gura rr fi co on a rm a s c fo r de liza ar rea lh é ba o tra ass ra p Pa nde gra O C IT G
  30. 30. GIT CONFIG Adicionando config Caso seu usuário e email não estejam configurados, faça-o com o comando: Na primeira vez quando não configurado o -list --global não possuí o .gitconfig na pasta do usuário. ➜ ~ git config --global user.name "Nome completo" ➜ ~ git config --global user.email "Endereço de Email"
  31. 31. git that like a boss COMaNDOS NO GIT tag novo projeto status log adicionando comitando
  32. 32. R DME EA R IA P .md N O C O V O P E R IO R Ó IT S O Q R A O IV U
  33. 33. D EA ches H n ple ─ bra g ─ .samle fi tion g ├ ─ con ip ms mp ├─ ─ descr s ch- g.sa ple ─ k plypat -ms am ple ├ ─ hoo p s ─ a mit date. ch.sam e ├ ─ ─ om p ─ ─ c t-u ypat mpl ple ├   ├ ─ os   p -appl mit.sa mple sg.sam ─ │   ├ ─ re   p -com se.sa it-m ─ │   ├ ─ re   p -reba comm ─ │   ├ ─ re   p pare- ample ─ │   ├ ─ re   p ate.s ─ │   ├ ─ pd │    ├─ ─ u e   ─ fo lud │   └ in   exc │ ─ ─ ts ├─  └─objec nfo │  ─ ─ i ack ├─  ├─ ─ p │    └─refs ds hea s │  ─ └─ ── tag ├ ─ └─ os uiv no rq it e a t in d i rio ar g etó cut dir xe um te e de en rio esm itó pl os sim ep e r d um po iar ocê cr , v ra te Pa ten is rio ex tó ire d N O V O P E R IO R Ó IT S O
  34. 34. NOVO REPOSITÓRIO Os arquivos a versionar Por exemplo, digamos que temos um diretório com nosso arquivo nele, como: ➜ ➜ ➜ ➜ ~ mkdir likeaboss ~ cd likeaboss ~ touch README.md likeaboss ls README.md
  35. 35. NOVO REPOSITÓRIO Criando o repositório Para iniciar o controle de versão disso com Git, podemos simplesmente executar git init, como: ➜ ~ git init Initialized empty Git repository in /Users/ helmed/rbsdev/.git/
  36. 36. NOVO REPOSITÓRIO Novo diretório Após a criação o git define um diretório para armazenamento de versões ➜ ~ ls -la . README .. .git rbsdev.sh
  37. 37. ed ck tra Un ked rac t to en am ion do rs na ve mi o er be det so m os u uiv em rq as sa m s o dor to ta en pu om om m c os seu ele? uit o m n rá m ão se E r al sta o, qu e d sta e S U T A T S
  38. 38. STATUS ➜ gitlikeaboss git status Conferindo o Estado dos arquivos Em muitos momentos os arquivos sobe o versionamento estarão no seu computador mas em um determinado estado. Para descobrir em que estado podemos usar o comando status, veja: # On branch master # # Initial commit # nothing to commit (create/copy files and use "git add" to track) ➜ gitlikeaboss git status # On branch master # # Initial commit # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # README.md nothing added to commit but untracked files present (use "git add" to track)
  39. 39. NOVO REPOSITÓRIO modified unmodified Untracked staged adicionado arquivo alterado arquivo colocou arquivo no stage README.md README.md README.md removido arquivo commit README.md
  40. 40. ed ck tra Un ked rac t o be nte o so me os m os iv e ad qu re a r mp tre m se as r co er ão o nd ue t de n lha s q do ba o ra tem an t ss s it, o g pa am do t os es to sm do en me an am u n os d Q io s e vida os. er d v o ad l re cic a rast ar p A N IO IC D A O D N
  41. 41. ADICIONANDO Rastreando Arquivos Para iniciar o rastreamento de um novo arquivo, você deve usar o comando add. Veja: ➜ gitlikeaboss git add README.md ➜ gitlikeaboss git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: README.md
  42. 42. ADICIONANDO ➜ gitlikeaboss git add . ➜ gitlikeaboss git status Várias formas de adição Para adicionar arquivos em um commit, é necessário executar um comando que insira ele no commit: # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: README.md ➜ gitlikeaboss touch a.txt ➜ gitlikeaboss git add *.txt ➜ gitlikeaboss git status # On branch master # # Initial commit # # Changes to be committed: # (use "git rm --cached <file>..." to unstage) # # new file: a.txt # # Untracked files: # (use "git add <file>..." to include in what will be committed) # # README.md
  43. 43. d e ck a ntr U tr ged sta d e ck a as it. ad m liz om ea c r o es ar çõ liz ra ea lte o r a ri as sá ar ces en ne az é rm git a r e do a o irm óric nf ist co h ra e o Pa nt ra pe O C A IT M O D N
  44. 44. COMITANDO Descrevendo o commit Após a adição dos arquivos no commit é possível executar o commit ➜ likeaboss git commit -m "Descrição do commit" [master (root-commit) edc6bb2] Descrição do commit 0 files changed create mode 100644 README.md
  45. 45. d e ck a ntr U d tr e ck a a 20 b1 c1 1 06 29 2a m> 80 co 3a b0 os ail. 2013 it d5 ir gm 7 mm 73 co b0 Mede ros@ 28:3 7 4a io dei 12: e 46 Hel lme 20 43 3d or: abra Oct f h c t Au lio. Sun e <h e: t Da 200 o -0 it Fe irá te en elm av ov pr ê ged sta G O L oc ,v its m om c ios eu. ár ec v t de con ois e a ep qu D o er v er er qu
  46. 46. LOG O Histórico de commits Após um commit mais um registro é criado no histórico. Por padrão, sem argumentos, git log lista os commits feitos naquele repositório em ordem cronológica reversa. ➜ likeaboss git log commit e1cf3d4346e4a7b073d5b03a8020a b1c1061292a Author: Helio Medeiros <helio.cabralmedeiros@gmail.c om> Date: Sun Oct 20 12:28:37 2013 -0200 Feito
  47. 47. 2.0 .0 1 os nt po ar alv io, e s itór e d os ad rep l id na um cio de un ia f r i a istó su h os na t p os Gi ic O cíf pe es G A T
  48. 48. TAG Criando TAGS Normalmente se segue o padrão v0.0.0 para a criação de tags, pois facilita a procura de tags específicas que são feitas de forma decrescente e alfabética. ➜ likeaboss git tag -a v1.0 -m "Introducao"
  49. 49. TAG Listando as TAGS Para visualizar as tags existentes no repositório, basta executar o comando ➜ likeaboss git tag v1.0
  50. 50. TAG Alternando entre tags Em muitos casos desejamos alternar entre versões para entender desde que oque foi feito até recuperar uma versão estável para promoção de bugs. Para isso: ➜ likeaboss git tag checkout v1.0
  51. 51. git that like a boss BRANCHING NO GIT removendo o que são branchs novo branch conflitos
  52. 52. er ast M o, jet ro t é p do o Gi iro o n te rã n d s, õe po pa aç m h u fic te ranc rami en b sm . O rsas lo. ple vos im u i ive arale s q d p é ar it s em do G o rg n su mu no os ch tod deste m an m br té ir . É u rt es m on U c pa ch e ter, a ran qu as b m ários o v to is R B H C N A
  53. 53. NOVO BRANCH Um novo branch Branch Based Em alguns momentos desejamos desenvolver novas funcionalidades, sejam para testar hipóteses ou apenas memorizar uma possível ideia. Nestas horas o branch nos ajuda. ➜ likeaboss git branch novafuncionalidade ➜ likeaboss git branch * master nova-funcionalidade Selecionando o branch ➜ likeaboss git checkout nova-funcionalidade Switched to branch 'novafuncionalidade'
  54. 54. Diferença ➜ gitlikeboss ls Master intocado Perceba que se você fizer checkout neste momento voltando para o branch master, não deverá estar presente nenhum resquício das alterações que acabamos de executar dentro do branch nova-funcionalidade: .gitignore 1/1a.txt README mnb.sh oba.sh rbsdev.sh senha.sh ➜ gitlikeboss git checkout master Switched to branch 'master' ➜ gitlikeboss git lsfiles .gitignore 1/1a.txt README oba.sh rbsdev.sh senha.sh
  55. 55. Alterando Fazendo nossas alterações Agora é hora de fazermos as alterações que desejamos. ➜ gitlikeaboss touch CHANGE.md ➜ gitlikeaboss git add . ➜ gitlikeaboss git commit -m “Novo arquivo”
  56. 56. visualizando Visualizando as diferenças Perceba que se você fizer novamente checkout, voltando para o branch master, havera alterações que acabamos de executar dentro do branch novafuncionalidade: ➜ gitlikeboss ls README.md CHANGE.md ➜ gitlikeboss git checkout master Switched to branch 'master' ➜ gitlikeboss ls README.md CHANGE.md
  57. 57. merge Mesclando as alterações Após a conclusão de uma tarefa é possível integrá-la a linha de desenvolvimento central. Para fazer isso, você fará o merge do seu branch. Tudo que você tem a fazer é executar o checkout do branch para onde deseja fazer o merge e então rodar o comando git merge. ➜ gitlikeboss git checkout master Switched to branch 'master' ➜ gitlikeboss git merge nova-funcionalidade ➜ gitlikeboss ls README.md CHANGE.md
  58. 58. removendo ➜ gitlikeboss git branch master * nova-funcionalidade Removendo Após a conclusão do desenvolvimento de uma nova funcionalidade e sua integração ao master é interessante a remoção dos branches, mantendo o ambiente limpo. ➜ gitlikeboss git branch --delete novafuncionalidade error: Cannot delete the branch 'novafuncionalidade' which you are currently on. ➜ gitlikeboss git checkout master Switched to branch 'master' ➜ gitlikeboss git branch --delete novafuncionalidade Deleted branch teste (was 27478a1).
  59. 59. COnflitos Merge com conflitos Em alguns momentos o git não conseguirá apresentar uma solução para os conflitos gerados entre as várias versões. Os conflitos podem acontecer durante os merges e commits. Sempre que um conflito acontece a ação executada fica incompleta até que os mesmos estejam resolvidos. ➜ gitlikeboss git merge novo-conflito Auto-merging arquivo.txt CONFLICT (content): Merge conflict in README.md Automatic merge failed; fix conflicts and then commit the result. ➜ gitlikeboss git commit -m “Conflito resolvido”
  60. 60. Fontes: Pro Git - Scott Chacon Obrigado! @evandroeisinger @helmedeiros @rssilva http://try.github.io http://nathanj.github.io http://gitready.com/ Imagens: http://git-scm.com/

×