Introdução ao 
Bem vindos!
Quem é você?
Walmyr Carvalho 
@walmyrcarvalho
Instituto Infnet 
Desenvolvedor Android 
Hotel Urbano 
Professor de Desenvolvimento 
para Plataformas Mobile
O que vamos ver hoje?
• Introdução 
• Breve histórico de criação do git 
• Características 
• Comandos básicos e seus conceitos 
• Não gosta de ...
Histórico
Quem criou o git?
Linus Torvalds 
Criador do kernel Linux 
Criou o Git em 2005
Porquê?
A criação do git começou durante o 
desenvolvimento do Linux, nenhum 
sistema de controle de versão tinha o 
desempenho id...
Por não encontrar nenhum outro 
sistema rápido, seguro e eficiente o 
suficiente para gerenciar um projeto 
grande como o ...
Características do git
• Sistema de controle distribuído 
• Menos suscetível a erros 
• Funcionamento offline 
• Projetos menores que o SVN 
• Ár...
Instalação e comandos básicos
Antes de começar, é preciso instalar o git na sua 
máquina. Faça o download para o seu sistema 
operacional no link abaixo...
Criando um repositório
Ok, agora temos o git instalado! Para 
iniciar um repositório git no seu projeto, 
acesse a raiz da pasta do projeto e 
ex...
Clonando um repositório
Caso você queira fazer uma cópia de um 
repositório local, execute o comando: 
git clone caminho/do/repositorio 
Se o proj...
Workflow do Git
Quando trabalhamos com git, temos em 
mãos três “árvores" de trabalho no nosso 
fluxo local de operações.
A primeira delas é o diretório de trabalho 
(também chamado de working tree), que é 
onde ficam os arquivos do seu projeto...
Quando você adiciona algum arquivo alterado (git 
add), você envia as suas alterações para o Index, que 
é como uma área d...
E por fim, quando você confirma uma nova 
alteração (git commit), você envia ela para a 
área de HEAD, que é onde está a ú...
Adicionando e commitando arquivos
Para adicionar novas alterações no Index, 
execute o comando: 
git add nome_do_arquivo 
Caso queira adicionar todas os arq...
O comando add é a primeira coisa que fazemos em 
um arquivo alterado, mas agora precisamos confirmar 
essa alteração. Para...
Enviando alterações
Agora que suas alterações já estão no HEAD, 
basta enviá-las para o seu repositório 
remoto. Para isso, execute o comando:...
Caso você queira se conectar a um 
repositório remoto, basta adicioná-lo com 
o comando: 
git remote add origin local_do_s...
O que é uma branch?
Uma branch (ramo ou galho, em inglês) é 
uma ramificação utilizada quando se 
deseja criar uma nova funcionalidade 
isolad...
Por exemplo: Esse é o master, é a branch padrão 
de um projeto git. Durante o projeto vamos 
precisar criar novas funciona...
Quando eu quero desenvolver uma nova 
funcionalidade, eu crio uma nova branch 
com o comando: 
git checkout -b nova_branch...
Ou seja, o que você acabou de fazer foi criar uma 
branch paralela ao master, mas com sua própria 
timeline de alterações ...
Ok, feita a nova funcionalidade, 
precisamos voltar para o master para 
mesclá-la com a nossa branch principal. 
Para isso...
Lembrando que uma branch não está 
automaticamente disponível para todos 
que tem acesso ao seu repositório, é 
preciso ad...
Ok, depois de criarmos uma branch nova e ter 
desenvolvido nossa nova funcionalidade, 
precisamos mesclá-la (merge) ao nos...
Mas antes de fazer o merge de uma nova 
branch ao master, precisamos atualizar o 
nosso repositório puxando possíveis 
nov...
Agora sim, temos o nosso repositório 
atualizado, pronto para receber a nossa 
branch. Para fazer o merge dela ao nosso 
m...
Lembrando que uma branch geralmente 
não vive por muito tempo, ao menos que a 
feature for muito grande. Nesses casos, o 
...
Resolvendo conflitos
Infelizmente, durante o merge conflitos 
podem acontecer. É preciso editar os 
arquivos e resolvê-los manualmente. 
Existe...
Caso você queira ver a diferença entre 
arquivos de branches diferentes, basta 
executar o comando: 
git diff <branch_orig...
Tags
Durante um projeto de software, é importante 
se criar tags para releases de lançamento. 
Para criar uma tag no git, usamo...
Você pode conseguir uma lista de ids de 
commits utilizando o comando: 
git log 
Ele lista todos os commits do projeto, 
c...
Links úteis
Serviços web
GitHub 
github.com
BitBucket 
bitbucket.com
GitLab 
Sistema similar ao git, porém open source 
www.gitlab.com
Aplicativos com GUI 
(Interface Gráfica)
GitHub 
(OS X / Windows) 
Gratuito! 
mac.github.com/ 
windows.github.com/
SourceTree 
(OS X / Windows) 
Gratuito! 
www.sourcetreeapp.com
Tower 
(OS X) 
US$ 60,00 :( 
www.git-tower.com
Git Cola 
(Linux) 
Gratuito e open source! 
git-cola.github.io/ 
RabbitVCS 
(Linux) 
Gratuito e open source! 
rabbitvcs.or...
Projetos usando git
Node GH 
nodegh.io 
GitHub no terminal, por Zeno Rocha
Hub 
Outro wrapper para GitHub no Terminal 
hub.github.com
Livros e cursos gratuitos
Git - Guia Prático 
por Roger Dudler, guia open source disponível em português, 
fonte principal de conteúdo da palestra! ...
Git - Cheat Sheet 
por Roger Dudler, lista de comandos mais 
comuns para referência rápida, em inglês 
rogerdudler.github....
Pro Git 
Livro oficial do projeto Git, disponível em português 
git-scm.com/book/pt-br
Curso - Git Tower 
Livro, vídeos e treinamento 
www.git-tower.com/learn
Curso - Try Git | Code School 
Curso disponibilizado online gratuitamente, parceria do 
Code School com o GitHub. 
try.git...
Dúvidas?
Eu ajudo, falem comigo! 
Twitter: @walmyrcarvalho 
Facebook: Walmyr Carvalho 
Google+: +WalmyrCarvalho
Obrigado! :)
Próximos SlideShares
Carregando em…5
×

Introdução ao Git

611 visualizações

Publicada em

Palestra gratuita realizada no dia 16 de abril de 2014, no Instituto Infnet, Rio de Janeiro. Dei uma introdução bem básica sobre git, comandos básicos e mostrei um workflow simples de como se trabalhar com git. Além disso, deixei links de aplicativos e material de estudos para quem quiser aprender mais sobre.

--

Free talk that happened on April 16, 2014, in Infnet Institute, Rio de Janeiro. Gave a very basic introduction to git, basic commands and showed a simple workflow of how to work with git. Furthermore, I showed some application links and study material for anyone wanting to learn more about.

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

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

Nenhuma nota no slide

Introdução ao Git

  1. 1. Introdução ao Bem vindos!
  2. 2. Quem é você?
  3. 3. Walmyr Carvalho @walmyrcarvalho
  4. 4. Instituto Infnet Desenvolvedor Android Hotel Urbano Professor de Desenvolvimento para Plataformas Mobile
  5. 5. O que vamos ver hoje?
  6. 6. • Introdução • Breve histórico de criação do git • Características • Comandos básicos e seus conceitos • Não gosta de Terminal? Apps com GUI! • Links úteis: Livros, cursos e material de estudo
  7. 7. Histórico
  8. 8. Quem criou o git?
  9. 9. Linus Torvalds Criador do kernel Linux Criou o Git em 2005
  10. 10. Porquê?
  11. 11. A criação do git começou durante o desenvolvimento do Linux, nenhum sistema de controle de versão tinha o desempenho ideal para lidar com o desenvolvimento não linear do projeto, com diversos desenvolvedores no mundo inteiro!
  12. 12. Por não encontrar nenhum outro sistema rápido, seguro e eficiente o suficiente para gerenciar um projeto grande como o Linux, Linus criou o próprio.
  13. 13. Características do git
  14. 14. • Sistema de controle distribuído • Menos suscetível a erros • Funcionamento offline • Projetos menores que o SVN • Área de preparo (staging) • Muito rápido! • Sistema de branches simples e eficiente
  15. 15. Instalação e comandos básicos
  16. 16. Antes de começar, é preciso instalar o git na sua máquina. Faça o download para o seu sistema operacional no link abaixo: git-scm.com/downloads
  17. 17. Criando um repositório
  18. 18. Ok, agora temos o git instalado! Para iniciar um repositório git no seu projeto, acesse a raiz da pasta do projeto e execute o comando: git init
  19. 19. Clonando um repositório
  20. 20. Caso você queira fazer uma cópia de um repositório local, execute o comando: git clone caminho/do/repositorio Se o projeto estiver em um repositório remoto, execute o comando: git clone usuario@server:/caminho/do/repositorio
  21. 21. Workflow do Git
  22. 22. Quando trabalhamos com git, temos em mãos três “árvores" de trabalho no nosso fluxo local de operações.
  23. 23. A primeira delas é o diretório de trabalho (também chamado de working tree), que é onde ficam os arquivos do seu projeto. WORKING
  24. 24. Quando você adiciona algum arquivo alterado (git add), você envia as suas alterações para o Index, que é como uma área de preparação (staging) das suas alterações. WORKING INDEX (Staging) add
  25. 25. E por fim, quando você confirma uma nova alteração (git commit), você envia ela para a área de HEAD, que é onde está a última confirmação que você fez. WORKING INDEX (Staging) HEAD add commit
  26. 26. Adicionando e commitando arquivos
  27. 27. Para adicionar novas alterações no Index, execute o comando: git add nome_do_arquivo Caso queira adicionar todas os arquivos alterados do seu repositório: git add *
  28. 28. O comando add é a primeira coisa que fazemos em um arquivo alterado, mas agora precisamos confirmar essa alteração. Para isso, usamos o comando abaixo: git commit -m “comentário" O commit é o que confirma a sua alteração e a envia para HEAD.
  29. 29. Enviando alterações
  30. 30. Agora que suas alterações já estão no HEAD, basta enviá-las para o seu repositório remoto. Para isso, execute o comando: git push origin master O master no caso é a sua branch atual, altere para a que desejar.
  31. 31. Caso você queira se conectar a um repositório remoto, basta adicioná-lo com o comando: git remote add origin local_do_servidor
  32. 32. O que é uma branch?
  33. 33. Uma branch (ramo ou galho, em inglês) é uma ramificação utilizada quando se deseja criar uma nova funcionalidade isolada de outras partes do projeto.
  34. 34. Por exemplo: Esse é o master, é a branch padrão de um projeto git. Durante o projeto vamos precisar criar novas funcionalidades para ele. master
  35. 35. Quando eu quero desenvolver uma nova funcionalidade, eu crio uma nova branch com o comando: git checkout -b nova_branch O comando acima é um atalho para executar dois comandos: git branch nova_branch git checkout nova_branch
  36. 36. Ou seja, o que você acabou de fazer foi criar uma branch paralela ao master, mas com sua própria timeline de alterações e commits, que deve ser mesclada ao master quando for concluída. nova_branch master
  37. 37. Ok, feita a nova funcionalidade, precisamos voltar para o master para mesclá-la com a nossa branch principal. Para isso, execute o comando: git checkout master Caso você queira deletar sua branch, utilize o comando: git branch -d nova_branch
  38. 38. Lembrando que uma branch não está automaticamente disponível para todos que tem acesso ao seu repositório, é preciso adicioná-la usando o comando: git push origin nova_branch
  39. 39. Ok, depois de criarmos uma branch nova e ter desenvolvido nossa nova funcionalidade, precisamos mesclá-la (merge) ao nosso master. nova_branch master merge
  40. 40. Mas antes de fazer o merge de uma nova branch ao master, precisamos atualizar o nosso repositório puxando possíveis novos commits do nosso repositório remoto. Para isso, utilize o comando: git pull
  41. 41. Agora sim, temos o nosso repositório atualizado, pronto para receber a nossa branch. Para fazer o merge dela ao nosso master, utilize o comando: git merge nova_branch
  42. 42. Lembrando que uma branch geralmente não vive por muito tempo, ao menos que a feature for muito grande. Nesses casos, o ideal é dividir a feature em branches menores.
  43. 43. Resolvendo conflitos
  44. 44. Infelizmente, durante o merge conflitos podem acontecer. É preciso editar os arquivos e resolvê-los manualmente. Existem diversas ferramentas gráficas que facilitam essa resolução de conflitos, comumente chamadas de merge tools ou diff tool.
  45. 45. Caso você queira ver a diferença entre arquivos de branches diferentes, basta executar o comando: git diff <branch_origem> <branch_destino>
  46. 46. Tags
  47. 47. Durante um projeto de software, é importante se criar tags para releases de lançamento. Para criar uma tag no git, usamos o comando: git tag 1.0.0 1b2e1d63ff O 1b2e1d63ff é composto pelos 10 primeiros caracteres do id do commit que você quer referenciar na sua tag.
  48. 48. Você pode conseguir uma lista de ids de commits utilizando o comando: git log Ele lista todos os commits do projeto, como um histórico detalhado do que foi feito em cada um deles.
  49. 49. Links úteis
  50. 50. Serviços web
  51. 51. GitHub github.com
  52. 52. BitBucket bitbucket.com
  53. 53. GitLab Sistema similar ao git, porém open source www.gitlab.com
  54. 54. Aplicativos com GUI (Interface Gráfica)
  55. 55. GitHub (OS X / Windows) Gratuito! mac.github.com/ windows.github.com/
  56. 56. SourceTree (OS X / Windows) Gratuito! www.sourcetreeapp.com
  57. 57. Tower (OS X) US$ 60,00 :( www.git-tower.com
  58. 58. Git Cola (Linux) Gratuito e open source! git-cola.github.io/ RabbitVCS (Linux) Gratuito e open source! rabbitvcs.org/
  59. 59. Projetos usando git
  60. 60. Node GH nodegh.io GitHub no terminal, por Zeno Rocha
  61. 61. Hub Outro wrapper para GitHub no Terminal hub.github.com
  62. 62. Livros e cursos gratuitos
  63. 63. Git - Guia Prático por Roger Dudler, guia open source disponível em português, fonte principal de conteúdo da palestra! rogerdudler.github.io/git-guide
  64. 64. Git - Cheat Sheet por Roger Dudler, lista de comandos mais comuns para referência rápida, em inglês rogerdudler.github.io/git-guide/files/git_cheat_sheet.pdf
  65. 65. Pro Git Livro oficial do projeto Git, disponível em português git-scm.com/book/pt-br
  66. 66. Curso - Git Tower Livro, vídeos e treinamento www.git-tower.com/learn
  67. 67. Curso - Try Git | Code School Curso disponibilizado online gratuitamente, parceria do Code School com o GitHub. try.github.io
  68. 68. Dúvidas?
  69. 69. Eu ajudo, falem comigo! Twitter: @walmyrcarvalho Facebook: Walmyr Carvalho Google+: +WalmyrCarvalho
  70. 70. Obrigado! :)

×