git
Como eu parei de me preocupar e comecei
a gostar de controlar meu código.
Who’s speaking?
Por que você deve se
preocupar?
Sistemas tradicionais de controle
de versão tem deficiências.
SVN, CVS, TFS, Mercurial ...
Lentos
Conflitos estruturais
Merging é sempre um desafio
Branchs são apenas cópias
usando svn
usando git
Not saying it’ s awesome
But git it’ s awesome
É distribuído!
Distributed Version Control System
Todos os repositórios são iguais
Você pode trabalhar offline
Fast as a lightning
Muito eficiente
git clone https://github.com/rails/rails.git
52.469 commits - 2.968 arquivos - 171,4 mb
~70 segundos
Excelente sistema de branching
e merging
Qualquer workflow que você queira
implementar, você consegue...
Workflow kernel linux
Todo mundo usa git
android automapper backbone
bootstrap cassandra coffeescript
couchdb cucumber fluent-nhibernate
git jekyll less linux mode...
Como instalar?
Linux:
apt-get install git-core (debian)
yast install git (SuSE)
yum install git-core (Red Hat)
Mac OSX:
sudo brew install...
git config --global user.name “André Magalhães”
git config --globla user.mail alcmagalhaes@gmail.com
git init
O branch master não tem nenhum
significado especial.
git add --all
git commit
O “nome” do commit é um hash SHA de
40 dígitos.
8adf25a6323ad20302d7009d482ec01491ec92eb
Existem quatro tipos de objetos
no git: blob, commit, tag e tree.
git remote add origin https://github.com/….
git push origin master
HEAD é uma referência para o
último commit realizado no
branch atual.
git pull origin master
Treinamento básico concluído.
Branching
e History
git branch nome
Branch é uma referência para
um ponteiro HEAD de uma
linha de trabalho.
git checkout nome
git merge nome
git reset --hard commit
git rebase nome
Merge é bom, mas em muitos
casos, rebase é melhor.
git commit --amend
git rebase --interactive
rebase --interactive
Permite: reescrever, editar,
corrigir, remover, reordenar...
Reescrever o histórico é legal e útil.
Você pode mudar o histórico de um repositório
remoto com o comando git push --force
Treinamento intermediário concluído.
Closing
thoughts
blame bisect cherry-pick clean
cvs-import describe diff fetch
filter-branch grep request-pull
revert svnimport stash
submo...
Ficou interessado?
https://git-scm.com/doc
https://progit.org
http://gitready.com
http://gitimmersion.com
twitter.com/alcmagalhaes
github.com/alcmagalhaes
https://try.github.io/levels/1/challenges/1
Palestra sobre git ministrada no BH-Tech Talks
Próximos SlideShares
Carregando em…5
×

Palestra sobre git ministrada no BH-Tech Talks

313 visualizações

Publicada em

Palestra sobre git ministrada no evento BH-Tech Talks do dia 11/08/2015 no Parque Tecnológico de Belo Horizonte - MG.

Publicada em: Tecnologia
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

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

Nenhuma nota no slide

Palestra sobre git ministrada no BH-Tech Talks

  1. 1. git Como eu parei de me preocupar e comecei a gostar de controlar meu código.
  2. 2. Who’s speaking?
  3. 3. Por que você deve se preocupar?
  4. 4. Sistemas tradicionais de controle de versão tem deficiências.
  5. 5. SVN, CVS, TFS, Mercurial ...
  6. 6. Lentos Conflitos estruturais Merging é sempre um desafio Branchs são apenas cópias
  7. 7. usando svn
  8. 8. usando git
  9. 9. Not saying it’ s awesome But git it’ s awesome
  10. 10. É distribuído! Distributed Version Control System
  11. 11. Todos os repositórios são iguais
  12. 12. Você pode trabalhar offline
  13. 13. Fast as a lightning
  14. 14. Muito eficiente git clone https://github.com/rails/rails.git 52.469 commits - 2.968 arquivos - 171,4 mb ~70 segundos
  15. 15. Excelente sistema de branching e merging
  16. 16. Qualquer workflow que você queira implementar, você consegue...
  17. 17. Workflow kernel linux
  18. 18. Todo mundo usa git
  19. 19. android automapper backbone bootstrap cassandra coffeescript couchdb cucumber fluent-nhibernate git jekyll less linux modernizr mongodb mono nancy ninject node nservicebus postgres rails ravendb reddit trac wikipedia
  20. 20. Como instalar?
  21. 21. Linux: apt-get install git-core (debian) yast install git (SuSE) yum install git-core (Red Hat) Mac OSX: sudo brew install git sudo port install git-core Windows: http://msysgit.github.com https://windows.github.com
  22. 22. git config --global user.name “André Magalhães” git config --globla user.mail alcmagalhaes@gmail.com
  23. 23. git init
  24. 24. O branch master não tem nenhum significado especial.
  25. 25. git add --all
  26. 26. git commit
  27. 27. O “nome” do commit é um hash SHA de 40 dígitos. 8adf25a6323ad20302d7009d482ec01491ec92eb
  28. 28. Existem quatro tipos de objetos no git: blob, commit, tag e tree.
  29. 29. git remote add origin https://github.com/….
  30. 30. git push origin master
  31. 31. HEAD é uma referência para o último commit realizado no branch atual.
  32. 32. git pull origin master
  33. 33. Treinamento básico concluído.
  34. 34. Branching e History
  35. 35. git branch nome
  36. 36. Branch é uma referência para um ponteiro HEAD de uma linha de trabalho.
  37. 37. git checkout nome
  38. 38. git merge nome
  39. 39. git reset --hard commit
  40. 40. git rebase nome
  41. 41. Merge é bom, mas em muitos casos, rebase é melhor.
  42. 42. git commit --amend
  43. 43. git rebase --interactive
  44. 44. rebase --interactive Permite: reescrever, editar, corrigir, remover, reordenar...
  45. 45. Reescrever o histórico é legal e útil.
  46. 46. Você pode mudar o histórico de um repositório remoto com o comando git push --force
  47. 47. Treinamento intermediário concluído.
  48. 48. Closing thoughts
  49. 49. blame bisect cherry-pick clean cvs-import describe diff fetch filter-branch grep request-pull revert svnimport stash submodule tag e muito mais...
  50. 50. Ficou interessado? https://git-scm.com/doc https://progit.org http://gitready.com http://gitimmersion.com
  51. 51. twitter.com/alcmagalhaes github.com/alcmagalhaes
  52. 52. https://try.github.io/levels/1/challenges/1

×